﻿<documents created="2010-12-15 11:43:24Z"><document src="C:\Users\Anders\Documents\automatones\Visual Studio\AutomaTones\AutomaTones\Controller\CAViewController.cs" renderPrefix="s0"><chunk hits="-1" domain="unknown"><source><![CDATA[/*
 * A CaViewController controls the messaging between views and the model. It subscribes to user events from the view and sends updates
 * on the evolvement of a Cellular Automaton. All user interaction with an IVIEW is handled and propogated to the right places. As all interaction
 * and modelling in the sysmtem goes through this class, it also defines the logic behind how the system reacts to system manipulation. Due to the
 * diffrences between the hardware and the gui some seperate logical commands to this class are needed, but in general their behavour is merged
 * together and abstracted in the same way.
 * Author: Anderes Høst | ahkj@itu.dk
 * Date: 04 Dec 2010
 */
using System;
using System.Collections.Generic;
using System.Diagnostics.Contracts;
using System.Drawing;
using System.IO;
using AutomaTones.HW_Sense_Compute;
using AutomaTones.Model.Automaton_Model;
using AutomaTones.Model.Automaton_Model.RuleLib;
using AutomaTones.Model.MIDI;
using AutomaTones.Model.MIDI.Mappers;
using AutomaTones.Model.Tools;
using AutomaTones.View;
using AutomaTones.View.Midi_Out_View;
using Microsoft.Pex.Framework;
using Midi;


namespace AutomaTones.Controller {
    [PexClass]
    partial class CAViewController : IController<IView> {

        private const int LAUNCHPAD_DIMENSION = 8;
        private const int NUMBER_OF_STATES = 7;
        private Channel _chosenChannel;
        private IHardwareView _hardWareView;
        private State[,] _grid, _rule;
        private List<State[,]> rules;
        private bool _userIsSettingCAInitialState, _userIsSettingCARule, _stateBeingChanged, _caReadyForReplay;

        //Cell manipulation
        ]]></source>
</chunk>
<method name=".ctor" namespace="AutomaTones.Controller" type="AutomaTones.Controller.CAViewController" typeName="CAViewController" token="60000e3" module="AutomaTones.exe"><hits><hit index="0" value="1"/>
<hit index="1" value="1"/>
<hit index="3" value="1"/>
<hit index="4" value="1"/>
<hit index="5" value="1"/>
<hit index="6" value="1"/>
<hit index="8" value="1"/>
<hit index="9" value="1"/>
<hit index="10" value="1"/>
<hit index="11" value="1"/>
<hit index="12" value="1"/>
<hit index="13" value="1"/>
<hit index="15" value="1"/>
<hit index="16" value="1"/>
<hit index="17" value="1"/>
<hit index="18" value="1"/>
<hit index="20" value="1"/>
<hit index="21" value="1"/>
<hit index="22" value="1"/>
<hit index="23" value="1"/>
<hit index="24" value="1"/>
<hit index="26" value="1"/>
<hit index="27" value="1"/>
<hit index="28" value="1"/>
<hit index="29" value="1"/>
<hit index="30" value="1"/>
<hit index="32" value="1"/>
<hit index="33" value="1"/>
<hit index="34" value="1"/>
<hit index="47" value="1"/>
<hit index="48" value="1"/>
<hit index="50" value="1"/>
<hit index="51" value="1"/>
<hit index="52" value="1"/>
<hit index="53" value="1"/>
<hit index="54" value="1"/>
<hit index="55" value="1"/>
<hit index="57" value="1"/>
<hit index="58" value="1"/>
<hit index="59" value="1"/>
<hit index="60" value="1"/>
<hit index="61" value="1"/>
<hit index="62" value="1"/>
<hit index="63" value="1"/>
</hits>
<coverage domain="userortestcode" unit="block" covered="10" total="13" coveredRatio="0.76923076923076927"/>
</method>
<chunk hits="1" offset="0000" domain="userortestcode"><source><![CDATA[private State _state = new State();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
        private int _x, _y, validTimestamp;

        //Musical references 
        private MidiOut _mo;
        private Tempo _tempo;
        ]]></source>
</chunk>
<chunk hits="2" offset="000e" domain="userortestcode"><source><![CDATA[private IMapper _mapper = new BechTranslator();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ // we need this for insitialization
        private ConnectVirtualMidi _vm;

        private CellularAutomaton _ca;
        private List<CellularAutomaton> _caHistory;

        ]]></source>
</chunk>
<chunk hits="2" offset="0019" domain="userortestcode"><source><![CDATA[public CAViewController()]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="1" offset="0020" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="1" offset="0021" domain="userortestcode"><source><![CDATA[rules = new List<State[,]>();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="2" offset="002c" domain="userortestcode"><source><![CDATA[_grid = new State[LAUNCHPAD_DIMENSION, LAUNCHPAD_DIMENSION];]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            //for custom rule setting dimension are never biiger than 3 x 3
            ]]></source>
</chunk>
<chunk hits="2" offset="0039" domain="userortestcode"><source><![CDATA[_rule = new State[3, 3];]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            try ]]></source>
</chunk>
<chunk hits="2" offset="0046" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="2" offset="0047" domain="userortestcode"><source><![CDATA[_vm = new ConnectVirtualMidi();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="2" offset="0052" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="0" offset="0055" domain="userortestcode"><source><![CDATA[catch (Exception ex)]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="0" offset="0056" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                //Midi not installed correctly and en exception is unavoidable. 
                //As graphical interaction is still possible we don't kill the system but let the user
                //continue to use it in a less functional way way. If critcal one could consider
                //the state of CaViewController invalid and exit here.
                ]]></source>
</chunk>
<chunk hits="0" offset="0057" domain="userortestcode"><source><![CDATA[Console.WriteLine(ex.Message);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="0063" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
              ]]></source>
</chunk>
<chunk hits="2" offset="0067" domain="userortestcode"><source><![CDATA[_mo = new MidiOut(Channel.Channel1, _mapper);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
              ]]></source>
</chunk>
<chunk hits="2" offset="0079" domain="userortestcode"><source><![CDATA[_tempo = MainController.Tempo;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[

            ]]></source>
</chunk>
<chunk hits="2" offset="0084" domain="userortestcode"><source><![CDATA[_caHistory = new List<CellularAutomaton>();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="2" offset="008f" domain="userortestcode"><source><![CDATA[ResetRuleGrid();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="1" offset="0096" domain="userortestcode"><source><![CDATA[ResetGrid();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
        ]]></source>
</chunk>
<chunk hits="1" offset="009d" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[

        public bool IsPLaying { get; set; }
        public bool IsPaused { get; set; }
        public int Volume { get; set; }
        public List<Channel> Channels { get; set; }

        /// <summary>
        /// Add an IView to this controller.
        /// </summary>
        /// <param name="view"></param>
        [PexMethod]
        public void AddView(IView view) ]]></source>
</chunk>
<method name="AddView" namespace="AutomaTones.Controller" type="AutomaTones.Controller.CAViewController" typeName="CAViewController" token="60000ec" module="AutomaTones.exe"><hits><hit index="0" value="1"/>
<hit index="1" value="1"/>
<hit index="2" value="1"/>
</hits>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<chunk hits="1" offset="0000" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            Contract.Requires(view != null);
            Contract.Ensures(View == view);
            ]]></source>
</chunk>
<chunk hits="1" offset="0001" domain="userortestcode"><source><![CDATA[View = view;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
        ]]></source>
</chunk>
<chunk hits="1" offset="0009" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[

        /// <summary>
        /// Add an IHardwareView to this controller. If the inputmode is set to launchpad in the controller this
        /// view will be notified.
        /// </summary>
        /// <param name="hardWareView"></param>
        [PexMethod]
        public void AddHwView(IHardwareView hardWareView) ]]></source>
</chunk>
<method name="AddHwView" namespace="AutomaTones.Controller" type="AutomaTones.Controller.CAViewController" typeName="CAViewController" token="60000ed" module="AutomaTones.exe"><hits><hit index="0" value="1"/>
<hit index="1" value="1"/>
<hit index="2" value="1"/>
</hits>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<chunk hits="1" offset="0000" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            Contract.Requires(hardWareView != null);
            Contract.Ensures(_hardWareView == hardWareView);
            ]]></source>
</chunk>
<chunk hits="1" offset="0001" domain="userortestcode"><source><![CDATA[_hardWareView = hardWareView;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
        ]]></source>
</chunk>
<chunk hits="2" offset="0008" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[

        /// <summary>
        /// This method should be invoked when a pad is pressed on the launchpad. 
        /// </summary>
        [PexMethod]
        public void LaunchpadClicked(int x, int y) ]]></source>
</chunk>
<method name="LaunchpadClicked" namespace="AutomaTones.Controller" type="AutomaTones.Controller.CAViewController" typeName="CAViewController" token="60000ee" module="AutomaTones.exe"><hits><hit index="0" value="1"/>
<hit index="1" value="1"/>
<hit index="2" value="1"/>
<hit index="3" value="1"/>
</hits>
<coverage domain="userortestcode" unit="block" covered="3" total="5" coveredRatio="0.6"/>
</method>
<chunk hits="1" offset="0000" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="1" offset="0001" domain="userortestcode"><source><![CDATA[if (!OkToUseLaunchpad())]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="1" offset="000b" domain="userortestcode"><source><![CDATA[return;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="000d" domain="userortestcode"><source><![CDATA[CellClicked(x, y);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
        ]]></source>
</chunk>
<chunk hits="1" offset="0016" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[

        /// <summary>
        /// Called whenever one of the statechange buttons on the right side of the Launchpad is pressed or released
        /// </summary>
        /// <param name="pushingStateButton">Indicates if a statechange button is being pressed</param>
        [PexMethod]
        public void StateButtonDown(bool pushingStateButton) ]]></source>
</chunk>
<method name="StateButtonDown" namespace="AutomaTones.Controller" type="AutomaTones.Controller.CAViewController" typeName="CAViewController" token="60000ef" module="AutomaTones.exe"><hits><hit index="0" value="1"/>
<hit index="1" value="1"/>
<hit index="2" value="1"/>
</hits>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<chunk hits="1" offset="0000" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="1" offset="0001" domain="userortestcode"><source><![CDATA[_stateBeingChanged = pushingStateButton;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
        ]]></source>
</chunk>
<chunk hits="2" offset="0008" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[

        /// <summary>
        /// Updates the state after a statechange button has been released
        /// </summary>
        /// <param name="state">The state change selected on the Launchpad</param>
        [PexMethod]
        public void State(State state) ]]></source>
</chunk>
<method name="State" namespace="AutomaTones.Controller" type="AutomaTones.Controller.CAViewController" typeName="CAViewController" token="60000f0" module="AutomaTones.exe"><hits><hit index="0" value="1"/>
<hit index="1" value="1"/>
<hit index="2" value="1"/>
</hits>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<chunk hits="1" offset="0000" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            Contract.Requires(state != null);
            ]]></source>
</chunk>
<chunk hits="1" offset="0001" domain="userortestcode"><source><![CDATA[_state = state;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
        ]]></source>
</chunk>
<chunk hits="2" offset="0008" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[

        /// <summary>
        /// Method that reacts to an'Ok' sent from the implementer of IView. It reacts in response to
        /// what the user was doing - setting up a rule or CA.
        /// </summary>
        [PexMethod]
        public void Ok() ]]></source>
</chunk>
<method name="Ok" namespace="AutomaTones.Controller" type="AutomaTones.Controller.CAViewController" typeName="CAViewController" token="60000f1" module="AutomaTones.exe"><hits><hit index="0" value="1"/>
<hit index="1" value="1"/>
<hit index="39" value="1"/>
<hit index="45" value="1"/>
<hit index="48" value="1"/>
<hit index="50" value="1"/>
</hits>
<coverage domain="userortestcode" unit="block" covered="4" total="23" coveredRatio="0.17391304347826087"/>
</method>
<chunk hits="1" offset="0000" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="1" offset="0001" domain="userortestcode"><source><![CDATA[if (_userIsSettingCAInitialState && (ChosenCAType == CAType.TwoDimensional ||
                                                 ChosenCAType == CAType.TwoDimensionalEXT || 
                                                 ChosenCAType == CAType.OneDimensional))]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="0" offset="0031" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                //was setting initial state and is now done
                ]]></source>
</chunk>
<chunk hits="0" offset="0032" domain="userortestcode"><source><![CDATA[_userIsSettingCARule = true;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ //Now setting the rule
                ]]></source>
</chunk>
<chunk hits="0" offset="0039" domain="userortestcode"><source><![CDATA[_userIsSettingCAInitialState = false;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="0" offset="0040" domain="userortestcode"><source><![CDATA[ResetRuleGrid();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="0" offset="0047" domain="userortestcode"><source><![CDATA[if (_hardWareView != null)]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                    ]]></source>
</chunk>
<chunk hits="0" offset="0054" domain="userortestcode"><source><![CDATA[_hardWareView.ClearGrid();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="0" offset="0060" domain="userortestcode"><source><![CDATA[View.SystemMessage("Set rule # " + (rules.Count + 1) +
                                   " Press ok to enter more rules. Press Play to listen.");]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="008d" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ else ]]></source>
</chunk>
<chunk hits="1" offset="0090" domain="userortestcode"><source><![CDATA[if (_userIsSettingCARule)]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="0" offset="009d" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="0" offset="009e" domain="userortestcode"><source><![CDATA[SaveRule();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="0" offset="00a5" domain="userortestcode"><source><![CDATA[ResetRuleGrid();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="00ac" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
        ]]></source>
</chunk>
<chunk hits="1" offset="00ad" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[

        /// <summary>
        /// Play was sent from the user. Doesn't actually 'play music' but sets up the process of generating music
        /// based on CAs by gathering the input and choices of the user.
        /// </summary>
        [PexMethod]
        public void PlaySentFromUser() ]]></source>
</chunk>
<method name="PlaySentFromUser" namespace="AutomaTones.Controller" type="AutomaTones.Controller.CAViewController" typeName="CAViewController" token="60000f2" module="AutomaTones.exe"><hits><hit index="0" value="1"/>
<hit index="1" value="1"/>
<hit index="5" value="1"/>
<hit index="6" value="1"/>
<hit index="16" value="1"/>
<hit index="17" value="1"/>
<hit index="27" value="1"/>
<hit index="28" value="1"/>
<hit index="30" value="1"/>
<hit index="31" value="1"/>
<hit index="46" value="1"/>
<hit index="47" value="1"/>
<hit index="62" value="1"/>
<hit index="63" value="1"/>
<hit index="64" value="1"/>
<hit index="65" value="1"/>
<hit index="66" value="1"/>
<hit index="76" value="1"/>
<hit index="77" value="1"/>
<hit index="78" value="1"/>
<hit index="79" value="1"/>
<hit index="80" value="1"/>
<hit index="81" value="1"/>
<hit index="82" value="1"/>
</hits>
<coverage domain="userortestcode" unit="block" covered="14" total="33" coveredRatio="0.42424242424242425"/>
</method>
<chunk hits="1" offset="0000" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="1" offset="0001" domain="userortestcode"><source><![CDATA[if (_caReadyForReplay)]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="0" offset="000e" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="0" offset="000f" domain="userortestcode"><source><![CDATA[IsPLaying = true;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="0" offset="0017" domain="userortestcode"><source><![CDATA[return;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            }
            ]]></source>
</chunk>
<chunk hits="1" offset="001c" domain="userortestcode"><source><![CDATA[if (ChosenCAType == CAType.GameOfLife)]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="0" offset="002c" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="0" offset="002d" domain="userortestcode"><source><![CDATA[CaTypeSetup.SetupGameOfLife(ref _ca, _grid.GetLength(0), _grid.GetLength(1), 2, _grid);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="0058" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ else ]]></source>
</chunk>
<chunk hits="1" offset="005e" domain="userortestcode"><source><![CDATA[if (ChosenCAType == CAType.GameOfLifeEXT)]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="0" offset="006e" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="0" offset="006f" domain="userortestcode"><source><![CDATA[CaTypeSetup.SetupGameOfLife(ref _ca, _grid.GetLength(0), _grid.GetLength(1), NUMBER_OF_STATES, _grid);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="009a" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ else ]]></source>
</chunk>
<chunk hits="1" offset="00a0" domain="userortestcode"><source><![CDATA[if (ChosenCAType == CAType.OneDimensional)]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="0" offset="00b0" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                //    SetUpOneDimensionalCA();
            ]]></source>
</chunk>
<chunk hits="0" offset="00b1" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ else ]]></source>
</chunk>
<chunk hits="1" offset="00b7" domain="userortestcode"><source><![CDATA[if (ChosenCAType == CAType.TwoDimensional)]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="0" offset="00c7" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="0" offset="00c8" domain="userortestcode"><source><![CDATA[SaveRule();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="0" offset="00cf" domain="userortestcode"><source><![CDATA[_userIsSettingCARule = false;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="0" offset="00d6" domain="userortestcode"><source><![CDATA[CaTypeSetup.SetupTwoDimensional(ref _ca, rules, 2, (uint)_grid.GetLength(0), _grid);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="0" offset="00fb" domain="userortestcode"><source><![CDATA[ResetGrid();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="0102" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ else ]]></source>
</chunk>
<chunk hits="1" offset="0105" domain="userortestcode"><source><![CDATA[if (ChosenCAType == CAType.TwoDimensionalEXT)]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="0" offset="0115" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="0" offset="0116" domain="userortestcode"><source><![CDATA[SaveRule();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="0" offset="011d" domain="userortestcode"><source><![CDATA[_userIsSettingCARule = false;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="0" offset="0124" domain="userortestcode"><source><![CDATA[CaTypeSetup.SetupTwoDimensional(ref _ca, rules, 8, (uint)_grid.GetLength(0), _grid);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="0" offset="0149" domain="userortestcode"><source><![CDATA[ResetGrid();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="0150" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[


            ]]></source>
</chunk>
<chunk hits="1" offset="0151" domain="userortestcode"><source><![CDATA[_userIsSettingCARule = false;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="2" offset="0158" domain="userortestcode"><source><![CDATA[IsPaused = false;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="1" offset="0160" domain="userortestcode"><source><![CDATA[if (_ca != null)]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="016d" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="0" offset="016e" domain="userortestcode"><source><![CDATA[IsPLaying = true;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="0" offset="0176" domain="userortestcode"><source><![CDATA[View.SystemMessage("Play");]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="0187" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
        ]]></source>
</chunk>
<chunk hits="1" offset="0188" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[

        [PexMethod]
        public void Evolve() ]]></source>
</chunk>
<method name="Evolve" namespace="AutomaTones.Controller" type="AutomaTones.Controller.CAViewController" typeName="CAViewController" token="60000f3" module="AutomaTones.exe"><hits><hit index="0" value="1"/>
<hit index="1" value="1"/>
<hit index="2" value="1"/>
<hit index="3" value="1"/>
<hit index="4" value="1"/>
<hit index="5" value="1"/>
<hit index="6" value="1"/>
<hit index="7" value="2"/>
<hit index="8" value="1"/>
<hit index="9" value="1"/>
<hit index="10" value="1"/>
<hit index="11" value="1"/>
<hit index="26" value="1"/>
</hits>
<coverage domain="userortestcode" unit="block" covered="4" total="8" coveredRatio="0.5"/>
</method>
<chunk hits="1" offset="0000" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="1" offset="0001" domain="userortestcode"><source><![CDATA[if (TimeStamp == _caHistory.Count)]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="1" offset="001b" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ //we're not 'back in time'
                ]]></source>
</chunk>
<chunk hits="1" offset="001c" domain="userortestcode"><source><![CDATA[_caHistory.Add((CellularAutomaton)_ca.Clone());]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="0" offset="0038" domain="userortestcode"><source><![CDATA[_ca.Evolve();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="0044" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
        ]]></source>
</chunk>
<chunk hits="0" offset="0045" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[

        /// <summary>
        /// Make this CaViewController play it's Cellular Automaton. This includes updating registred views
        /// and sound.
        /// </summary>
        [PexMethod] 
        public void Play() ]]></source>
</chunk>
<method name="Play" namespace="AutomaTones.Controller" type="AutomaTones.Controller.CAViewController" typeName="CAViewController" token="60000f4" module="AutomaTones.exe"><hits><hit index="0" value="1"/>
<hit index="1" value="1"/>
<hit index="2" value="1"/>
<hit index="3" value="1"/>
<hit index="4" value="1"/>
<hit index="5" value="1"/>
<hit index="6" value="1"/>
<hit index="7" value="1"/>
<hit index="8" value="1"/>
<hit index="9" value="1"/>
<hit index="10" value="2"/>
<hit index="11" value="1"/>
</hits>
<coverage domain="userortestcode" unit="block" covered="4" total="18" coveredRatio="0.22222222222222221"/>
</method>
<chunk hits="1" offset="0000" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            //make sure we have a valid timestamp, could go wrong when going forward in time
            ]]></source>
</chunk>
<chunk hits="1" offset="0001" domain="userortestcode"><source><![CDATA[validTimestamp = TimeStamp;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="2" offset="000d" domain="userortestcode"><source><![CDATA[if (validTimestamp >= _caHistory.Count)]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="1" offset="0024" domain="userortestcode"><source><![CDATA[return;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="0026" domain="userortestcode"><source><![CDATA[State[,] grid = Convertor.CAToStateGrid(_caHistory[validTimestamp]);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="003d" domain="userortestcode"><source><![CDATA[if (MainController.LaunchpadConnected && InputMode == InputMode.Launchpad)]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="0" offset="0057" domain="userortestcode"><source><![CDATA[_hardWareView.SetGrid(grid);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="0064" domain="userortestcode"><source><![CDATA[_mo.SetGrid(grid);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="0071" domain="userortestcode"><source><![CDATA[View.SetGrid(grid);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="007e" domain="userortestcode"><source><![CDATA[TimeStamp++;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
        ]]></source>
</chunk>
<chunk hits="1" offset="008d" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[

        /// <summary>
        /// Pause was clicked. Clicking pause twice works as a kind of reset of the CA and views.
        /// </summary>
        [PexMethod]         
        public void Pause() ]]></source>
</chunk>
<method name="Pause" namespace="AutomaTones.Controller" type="AutomaTones.Controller.CAViewController" typeName="CAViewController" token="60000f5" module="AutomaTones.exe"><hits><hit index="0" value="1"/>
<hit index="1" value="1"/>
<hit index="2" value="1"/>
<hit index="8" value="1"/>
<hit index="9" value="1"/>
<hit index="39" value="1"/>
<hit index="40" value="1"/>
<hit index="41" value="1"/>
<hit index="42" value="1"/>
<hit index="43" value="1"/>
<hit index="47" value="1"/>
<hit index="48" value="1"/>
<hit index="50" value="1"/>
</hits>
<coverage domain="userortestcode" unit="block" covered="7" total="20" coveredRatio="0.35"/>
</method>
<chunk hits="1" offset="0000" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="1" offset="0001" domain="userortestcode"><source><![CDATA[if (IsPLaying)]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="0" offset="000e" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="0" offset="000f" domain="userortestcode"><source><![CDATA[IsPLaying = false;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="0" offset="0017" domain="userortestcode"><source><![CDATA[_caReadyForReplay = true;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="001e" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ else ]]></source>
</chunk>
<chunk hits="1" offset="0021" domain="userortestcode"><source><![CDATA[if (IsPaused)]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="0" offset="002e" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ //if pause is clicked twice
                ]]></source>
</chunk>
<chunk hits="0" offset="002f" domain="userortestcode"><source><![CDATA[IsPLaying = false;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="0" offset="0037" domain="userortestcode"><source><![CDATA[ResetGrid();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="0" offset="003e" domain="userortestcode"><source><![CDATA[_caHistory.Clear();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="0" offset="004a" domain="userortestcode"><source><![CDATA[TimeStamp = 0;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="0" offset="0052" domain="userortestcode"><source><![CDATA[validTimestamp = 0;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="0" offset="0059" domain="userortestcode"><source><![CDATA[_caReadyForReplay = false;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="0" offset="0060" domain="userortestcode"><source><![CDATA[if (_hardWareView != null)]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                    ]]></source>
</chunk>
<chunk hits="0" offset="006d" domain="userortestcode"><source><![CDATA[_hardWareView.ClearGrid();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="0" offset="0079" domain="userortestcode"><source><![CDATA[View.SystemMessage("CA has been reset");]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="008a" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="1" offset="008b" domain="userortestcode"><source><![CDATA[IsPaused = true;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="1" offset="0093" domain="userortestcode"><source><![CDATA[View.SystemMessage("Pause");]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
        ]]></source>
</chunk>
<chunk hits="0" offset="00a4" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[

        //Go forward in time!
        [PexMethod]
        public void Forward() ]]></source>
</chunk>
<method name="Forward" namespace="AutomaTones.Controller" type="AutomaTones.Controller.CAViewController" typeName="CAViewController" token="60000f6" module="AutomaTones.exe"><hits><hit index="0" value="1"/>
<hit index="1" value="1"/>
<hit index="2" value="1"/>
<hit index="3" value="1"/>
<hit index="4" value="1"/>
<hit index="5" value="1"/>
<hit index="6" value="1"/>
<hit index="7" value="2"/>
<hit index="8" value="1"/>
<hit index="9" value="1"/>
<hit index="18" value="1"/>
</hits>
<coverage domain="userortestcode" unit="block" covered="4" total="9" coveredRatio="0.44444444444444442"/>
</method>
<chunk hits="1" offset="0000" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="1" offset="0001" domain="userortestcode"><source><![CDATA[if (TimeStamp == _caHistory.Count)]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="1" offset="001b" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="1" offset="001c" domain="userortestcode"><source><![CDATA[Evolve();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="0" offset="0023" domain="userortestcode"><source><![CDATA[Play();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="002a" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ else ]]></source>
</chunk>
<chunk hits="0" offset="002d" domain="userortestcode"><source><![CDATA[TimeStamp++;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
        ]]></source>
</chunk>
<chunk hits="0" offset="003c" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[

        //rewind
        [PexMethod]
        public void Rewind() ]]></source>
</chunk>
<method name="Rewind" namespace="AutomaTones.Controller" type="AutomaTones.Controller.CAViewController" typeName="CAViewController" token="60000f7" module="AutomaTones.exe"><hits><hit index="0" value="1"/>
<hit index="1" value="1"/>
<hit index="2" value="1"/>
<hit index="8" value="1"/>
<hit index="9" value="1"/>
<hit index="42" value="1"/>
<hit index="43" value="1"/>
<hit index="44" value="1"/>
</hits>
<coverage domain="userortestcode" unit="block" covered="6" total="23" coveredRatio="0.2608695652173913"/>
</method>
<chunk hits="1" offset="0000" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="1" offset="0001" domain="userortestcode"><source><![CDATA[if (0 <= TimeStamp - 3)]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="0" offset="0010" domain="userortestcode"><source><![CDATA[TimeStamp -= 3;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="1" offset="001f" domain="userortestcode"><source><![CDATA[if (IsPaused && _caReadyForReplay)]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="0" offset="0037" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="0" offset="0038" domain="userortestcode"><source><![CDATA[State[,] grid = Convertor.CAToStateGrid(_caHistory[TimeStamp]);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="0" offset="004f" domain="userortestcode"><source><![CDATA[if (MainController.LaunchpadConnected && InputMode == InputMode.Launchpad)]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                    ]]></source>
</chunk>
<chunk hits="0" offset="0069" domain="userortestcode"><source><![CDATA[_hardWareView.SetGrid(grid);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="0" offset="0076" domain="userortestcode"><source><![CDATA[_mo.SetGrid(grid);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="0" offset="0083" domain="userortestcode"><source><![CDATA[View.SetGrid(grid);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="0090" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
        ]]></source>
</chunk>
<chunk hits="1" offset="0091" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[


        /// <summary>
        /// Save the current instance of of the ca along relevant history and state for later replication.
        /// </summary>
        /// <param name="name"></param>
        [PexMethod]         
        public void Save(String name) ]]></source>
</chunk>
<method name="Save" namespace="AutomaTones.Controller" type="AutomaTones.Controller.CAViewController" typeName="CAViewController" token="60000f8" module="AutomaTones.exe"><hits><hit index="0" value="1"/>
<hit index="1" value="1"/>
<hit index="2" value="1"/>
<hit index="3" value="1"/>
<hit index="4" value="1"/>
<hit index="5" value="1"/>
<hit index="57" value="1"/>
</hits>
<coverage domain="userortestcode" unit="block" covered="3" total="18" coveredRatio="0.16666666666666666"/>
</method>
<chunk hits="1" offset="0000" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            Contract.Requires(name != null);
            ]]></source>
</chunk>
<chunk hits="1" offset="0001" domain="userortestcode"><source><![CDATA[if (_ca == null)]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="1" offset="0011" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="1" offset="0012" domain="userortestcode"><source><![CDATA[View.SystemMessage("No CA to save.");]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="0" offset="0023" domain="userortestcode"><source><![CDATA[return;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            }
            ]]></source>
</chunk>
<chunk hits="0" offset="0028" domain="userortestcode"><source><![CDATA[CaSaveContainer cas = new CaSaveContainer() {
                CellularAutomaton = _ca,
                CaHistory = _caHistory,
                ChosenChannel = _chosenChannel,
                Volume = this.Volume,
                Grid = new Size() { Width = _grid.GetLength(0), Height = _grid.GetLength(1) }
            };]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="009c" domain="userortestcode"><source><![CDATA[SaveCa.Save(cas, name);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="00a4" domain="userortestcode"><source><![CDATA[View.SystemMessage("Cellular Automaton saved as " + name);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
        ]]></source>
</chunk>
<chunk hits="0" offset="00bb" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[

        /// <summary>
        /// Load and and play the automaton that is found
        /// </summary>
        /// <param name="path"></param>
        [PexMethod]
        public void Load(String path) ]]></source>
</chunk>
<method name="Load" namespace="AutomaTones.Controller" type="AutomaTones.Controller.CAViewController" typeName="CAViewController" token="60000f9" module="AutomaTones.exe"><hits><hit index="0" value="1"/>
<hit index="1" value="1"/>
<hit index="2" value="1"/>
<hit index="82" value="1"/>
</hits>
<tags><tag offset="0002">call to uninstrumented method File.Exists(String)</tag>
</tags>
<coverage domain="userortestcode" unit="block" covered="3" total="27" coveredRatio="0.11111111111111111"/>
</method>
<chunk hits="1" offset="0000" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            Contract.Requires(path.Length > 0);
            ]]></source>
</chunk>
<chunk hits="1" offset="0001" domain="userortestcode" tag="true"><tooltip><![CDATA[call to uninstrumented method File.Exists(String)]]></tooltip>
<source><![CDATA[if (File.Exists(path))]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="0" offset="0011" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="0" offset="0012" domain="userortestcode"><source><![CDATA[CaSaveContainer csc = LoadCA.Load(path);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="0" offset="0019" domain="userortestcode"><source><![CDATA[if (csc == null)]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="0" offset="0024" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                    ]]></source>
</chunk>
<chunk hits="0" offset="0025" domain="userortestcode"><source><![CDATA[View.SystemMessage("CA at: " + path + " not found");]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                    ]]></source>
</chunk>
<chunk hits="0" offset="0041" domain="userortestcode"><source><![CDATA[return;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                }
                ]]></source>
</chunk>
<chunk hits="0" offset="0046" domain="userortestcode"><source><![CDATA[this._ca = csc.CellularAutomaton;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="0" offset="0052" domain="userortestcode"><source><![CDATA[this._caHistory = csc.CaHistory;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="0" offset="005e" domain="userortestcode"><source><![CDATA[this.Volume = csc.Volume;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="0" offset="006b" domain="userortestcode"><source><![CDATA[this._chosenChannel = csc.ChosenChannel;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="0" offset="0077" domain="userortestcode"><source><![CDATA[this._grid = new State[csc.Grid.Width, csc.Grid.Height];]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="0" offset="009e" domain="userortestcode"><source><![CDATA[ResetGrid();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="0" offset="00a5" domain="userortestcode"><source><![CDATA[_userIsSettingCARule = false;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="0" offset="00ac" domain="userortestcode"><source><![CDATA[_userIsSettingCAInitialState = false;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="0" offset="00b3" domain="userortestcode"><source><![CDATA[InputMode = InputMode.Off;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[

                ]]></source>
</chunk>
<chunk hits="0" offset="00bb" domain="userortestcode"><source><![CDATA[View.DisplayChannel(this._chosenChannel);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="0" offset="00cd" domain="userortestcode"><source><![CDATA[View.SetVolume(Volume);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="0" offset="00df" domain="userortestcode"><source><![CDATA[IsPLaying = true;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="00e7" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
        ]]></source>
</chunk>
<chunk hits="1" offset="00e8" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[

        [PexMethod]
        public void SetVolume(int volume) ]]></source>
</chunk>
<method name="SetVolume" namespace="AutomaTones.Controller" type="AutomaTones.Controller.CAViewController" typeName="CAViewController" token="60000fa" module="AutomaTones.exe"><hits><hit index="0" value="1"/>
<hit index="1" value="1"/>
<hit index="2" value="1"/>
<hit index="3" value="1"/>
<hit index="4" value="1"/>
<hit index="5" value="1"/>
<hit index="6" value="1"/>
<hit index="7" value="1"/>
<hit index="8" value="1"/>
<hit index="9" value="2"/>
<hit index="10" value="1"/>
<hit index="11" value="1"/>
</hits>
<coverage domain="userortestcode" unit="block" covered="7" total="7" coveredRatio="1"/>
</method>
<chunk hits="1" offset="0000" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            Contract.Ensures(0 <= Volume && Volume <= 100);
            ]]></source>
</chunk>
<chunk hits="1" offset="0001" domain="userortestcode"><source><![CDATA[if (0 <= volume && volume <= 100)]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="1" offset="0011" domain="userortestcode"><source><![CDATA[this.Volume = volume;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="2" offset="0019" domain="userortestcode"><source><![CDATA[_mo.SetVolume(volume);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
        ]]></source>
</chunk>
<chunk hits="3" offset="0026" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[

        /// <summary>
        /// Sets the channel that is chosen for sound output.
        /// </summary>
        [PexMethod] 
        public void SetChannel(Channel c) ]]></source>
</chunk>
<method name="SetChannel" namespace="AutomaTones.Controller" type="AutomaTones.Controller.CAViewController" typeName="CAViewController" token="60000fb" module="AutomaTones.exe"><hits><hit index="0" value="1"/>
<hit index="1" value="1"/>
<hit index="2" value="1"/>
<hit index="3" value="1"/>
<hit index="4" value="1"/>
<hit index="5" value="1"/>
<hit index="6" value="1"/>
<hit index="7" value="2"/>
</hits>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<chunk hits="1" offset="0000" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            Contract.Ensures(_chosenChannel.Equals(c));
            ]]></source>
</chunk>
<chunk hits="1" offset="0001" domain="userortestcode"><source><![CDATA[_chosenChannel = c;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="2" offset="0008" domain="userortestcode"><source><![CDATA[_mo.SetChannel(c);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
        ]]></source>
</chunk>
<chunk hits="3" offset="0015" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[

        /// <summary>
        /// Updates a grid. The controller always knows what cell there's being tampered with.
        /// </summary>
        /// <param name="grid">The grid that needs to be updated</param>
        [PexMethod]        
        private void SetGridCell(State[,] grid) ]]></source>
</chunk>
<method name="SetGridCell" namespace="AutomaTones.Controller" type="AutomaTones.Controller.CAViewController" typeName="CAViewController" token="60000fc" module="AutomaTones.exe"><hits><hit index="0" value="1"/>
<hit index="1" value="1"/>
<hit index="17" value="1"/>
<hit index="18" value="1"/>
<hit index="19" value="1"/>
<hit index="20" value="1"/>
<hit index="21" value="1"/>
<hit index="22" value="1"/>
<hit index="23" value="1"/>
<hit index="24" value="1"/>
<hit index="25" value="1"/>
<hit index="26" value="1"/>
<hit index="27" value="1"/>
<hit index="28" value="1"/>
<hit index="29" value="1"/>
<hit index="30" value="2"/>
<hit index="31" value="1"/>
<hit index="32" value="1"/>
<hit index="33" value="1"/>
<hit index="34" value="2"/>
<hit index="35" value="1"/>
<hit index="36" value="1"/>
<hit index="37" value="1"/>
<hit index="38" value="1"/>
<hit index="39" value="1"/>
<hit index="40" value="2"/>
<hit index="41" value="1"/>
<hit index="42" value="1"/>
<hit index="43" value="1"/>
<hit index="44" value="1"/>
<hit index="71" value="1"/>
<hit index="72" value="1"/>
<hit index="73" value="1"/>
<hit index="74" value="1"/>
<hit index="75" value="1"/>
<hit index="76" value="1"/>
<hit index="77" value="1"/>
<hit index="78" value="1"/>
<hit index="79" value="1"/>
<hit index="80" value="1"/>
<hit index="93" value="1"/>
<hit index="95" value="1"/>
<hit index="96" value="1"/>
<hit index="97" value="1"/>
</hits>
<coverage domain="userortestcode" unit="block" covered="9" total="18" coveredRatio="0.5"/>
</method>
<chunk hits="1" offset="0000" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            Contract.Requires(grid != null);
            ]]></source>
</chunk>
<chunk hits="1" offset="0001" domain="userortestcode"><source><![CDATA[if (_stateBeingChanged)]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="0" offset="000e" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="0" offset="000f" domain="userortestcode"><source><![CDATA[grid[_x, _y].CurrentState = _state.CurrentState;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="0032" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ else ]]></source>
</chunk>
<chunk hits="1" offset="0035" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="1" offset="0036" domain="userortestcode"><source><![CDATA[grid[_x, _y].CurrentState = ++grid[_x, _y].CurrentState % NUMBER_OF_STATES;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="0073" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="0074" domain="userortestcode"><source><![CDATA[if (IsPLaying || (_caReadyForReplay))]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="0" offset="008c" domain="userortestcode"><source><![CDATA[_ca[_x, _y] = grid[_x, _y].CurrentState;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="1" offset="00c9" domain="userortestcode"><source><![CDATA[View.SetCell(_x, _y, grid[_x, _y]);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="00f3" domain="userortestcode"><source><![CDATA[NotifyLaunchpadOnCellClick(_x, _y, grid[_x, _y]);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
        ]]></source>
</chunk>
<chunk hits="0" offset="0118" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[

        /// <summary>
        /// A cell was clicked. 
        /// </summary>
        /// <param name="xPos"></param>
        /// <param name="yPos"></param>
        [PexMethod]        
        private void CellClicked(int xPos, int yPos) ]]></source>
</chunk>
<method name="CellClicked" namespace="AutomaTones.Controller" type="AutomaTones.Controller.CAViewController" typeName="CAViewController" token="60000fd" module="AutomaTones.exe"><hits><hit index="0" value="1"/>
<hit index="1" value="1"/>
<hit index="6" value="1"/>
<hit index="7" value="1"/>
<hit index="8" value="1"/>
<hit index="9" value="1"/>
<hit index="10" value="1"/>
<hit index="21" value="1"/>
<hit index="22" value="1"/>
<hit index="23" value="1"/>
<hit index="24" value="1"/>
<hit index="25" value="1"/>
<hit index="26" value="1"/>
<hit index="27" value="1"/>
<hit index="28" value="1"/>
<hit index="29" value="1"/>
<hit index="30" value="1"/>
<hit index="31" value="1"/>
<hit index="33" value="1"/>
<hit index="34" value="1"/>
<hit index="35" value="1"/>
<hit index="37" value="1"/>
<hit index="38" value="1"/>
<hit index="39" value="1"/>
<hit index="40" value="1"/>
<hit index="41" value="1"/>
<hit index="42" value="1"/>
</hits>
<coverage domain="userortestcode" unit="block" covered="11" total="19" coveredRatio="0.57894736842105265"/>
</method>
<chunk hits="1" offset="0000" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            Contract.Requires(_grid != null);
            Contract.Requires(_rule != null);
            Contract.Requires(0 <= _x && 0 <= _y);
            //Only affect cells if user is in a set cell kind of mode that is also valid.);););
            ]]></source>
</chunk>
<chunk hits="1" offset="0001" domain="userortestcode"><source><![CDATA[if (_userIsSettingCARule && !CellIsValid(xPos, yPos))]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="0" offset="0018" domain="userortestcode"><source><![CDATA[return;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="1" offset="001d" domain="userortestcode"><source><![CDATA[_x = xPos;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="2" offset="0024" domain="userortestcode"><source><![CDATA[_y = yPos;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="2" offset="002b" domain="userortestcode"><source><![CDATA[if (_userIsSettingCARule && xPos < _rule.GetLength(0) && yPos < _rule.GetLength(1))]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="0" offset="005b" domain="userortestcode"><source><![CDATA[SetGridCell(_rule);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            else ]]></source>
</chunk>
<chunk hits="1" offset="006a" domain="userortestcode"><source><![CDATA[if ((xPos < _grid.GetLength(0) && yPos < _grid.GetLength(1)) && CellIsValid(xPos, yPos))]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="1" offset="009a" domain="userortestcode"><source><![CDATA[SetGridCell(_grid);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
        ]]></source>
</chunk>
<chunk hits="1" offset="00a7" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[

        /// <summary>
        /// Checks if it is ok to use the Launchpad as input
        /// </summary>
        /// <returns></returns>
        private bool OkToUseLaunchpad() ]]></source>
</chunk>
<method name="OkToUseLaunchpad" namespace="AutomaTones.Controller" type="AutomaTones.Controller.CAViewController" typeName="CAViewController" token="60000fe" module="AutomaTones.exe"><hits><hit index="0" value="1"/>
<hit index="1" value="1"/>
<hit index="2" value="1"/>
<hit index="3" value="1"/>
<hit index="8" value="1"/>
</hits>
<coverage domain="userortestcode" unit="block" covered="3" total="5" coveredRatio="0.6"/>
</method>
<chunk hits="1" offset="0000" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="1" offset="0001" domain="userortestcode"><source><![CDATA[return (_userIsSettingCAInitialState || _userIsSettingCARule) && InputMode == InputMode.Launchpad;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
        ]]></source>
</chunk>
<chunk hits="1" offset="0020" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[

        private void NotifyLaunchpadOnCellClick(int x, int y, State state) {
            if (InputMode == InputMode.Launchpad && _hardWareView != null) {
                _hardWareView.SetCell(x, y, state);
            }
        }

        private void SaveRule() {
            rules.Add(_rule);
            View.SystemMessage("Set rule # " + (rules.Count + 1) + " Press ok to enter more rules. Press Play to listen.");
        }

        /// <summary>
        /// Check to see if a clicked cell is valid according to the rule selected. At this point the user has a grid of 3 x 3
        /// </summary>
        /// <returns></returns>
        private Boolean CellIsValid(int xPos, int yPos) ]]></source>
</chunk>
<method name="CellIsValid" namespace="AutomaTones.Controller" type="AutomaTones.Controller.CAViewController" typeName="CAViewController" token="6000101" module="AutomaTones.exe"><hits><hit index="0" value="1"/>
<hit index="1" value="1"/>
<hit index="6" value="1"/>
<hit index="14" value="1"/>
<hit index="15" value="1"/>
<hit index="19" value="1"/>
<hit index="20" value="1"/>
<hit index="21" value="1"/>
<hit index="23" value="1"/>
<hit index="24" value="1"/>
</hits>
<coverage domain="userortestcode" unit="block" covered="7" total="19" coveredRatio="0.36842105263157893"/>
</method>
<chunk hits="1" offset="0000" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="1" offset="0001" domain="userortestcode"><source><![CDATA[if (_userIsSettingCAInitialState && ChosenCAType == CAType.OneDimensional)]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="0" offset="001c" domain="userortestcode"><source><![CDATA[return yPos == 0;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="1" offset="0023" domain="userortestcode"><source><![CDATA[if (_userIsSettingCARule && (xPos >= _rule.GetLength(0) || yPos >= _rule.GetLength(0)))]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="0" offset="0053" domain="userortestcode"><source><![CDATA[return false;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="1" offset="0057" domain="userortestcode"><source><![CDATA[if (ChosenCAType == CAType.OneDimensional)]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="0" offset="0067" domain="userortestcode"><source><![CDATA[return yPos == 0 || (yPos == 1 && xPos == 1);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="1" offset="007b" domain="userortestcode"><source><![CDATA[return true;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
        ]]></source>
</chunk>
<chunk hits="1" offset="007f" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[

        /// <summary>
        /// Change the CAType.
        /// </summary>
        /// <param name="type"></param>
        private void ChangeCaType(CAType type) {
            //Dimension changed, and we don't combine these so clear the listed rules in this case and go to config of ca
            if (type != ChosenCAType && type == CAType.TwoDimensional || type == CAType.OneDimensional) {
                rules.Clear();
                View.SystemMessage("Dimensions can't be combined...");
                _userIsSettingCARule = false;
                _userIsSettingCAInitialState = true;
                this.ChosenCAType = type;
                ResetGrid();
                return;
            }
            this.ChosenCAType = type;
            View.SystemMessage("" + type);
            if (_userIsSettingCARule)
                ResetRuleGrid();
        }

        /// <summary>
        /// Called when a new input mode is selected. For the Launchpad we start using the 8 x 8
        /// already held in this class. For mouse configuration of CA we use the preferred grid used
        /// by the IVIEW
        /// </summary>
        /// <param name="im"></param>
        private void ChangeInputMode(InputMode im) {
            if (IsPLaying) {
                View.SystemMessage("Stop music to modify CA input mode");
                return;
            }
            InputMode = im;
            View.SystemMessage("Input mode: " + this.InputMode);
            switch (im) {
                case InputMode.Launchpad: {
                        _grid = new State[LAUNCHPAD_DIMENSION, LAUNCHPAD_DIMENSION];
                        _userIsSettingCAInitialState = true;
                    }
                    break;
                case InputMode.Mouse: {
                        _grid = View.CustomGrid;
                        _userIsSettingCAInitialState = true;
                    }
                    break;
                case InputMode.Off: {
                        _userIsSettingCAInitialState = false;
                    }
                    break;
            }
            _userIsSettingCARule = false;
            ResetGrid();
            if (rules.Count > 0)
                rules.Clear();
        }

        /// <summary>
        /// Changes the mapper
        /// </summary>
        /// <param name="mapper"></param>
        private void ChangeMapper(Mapper mapper) {
            switch (mapper) {
                case Mapper.BechTranslator: {
                        _mo.SetMapper(new BechTranslator());
                        View.SystemMessage("" + mapper);
                    }
                    break;
                case Mapper.HqstTranslator: {
                        _mo.SetMapper(new HqstTranslator());
                         View.SystemMessage("" + mapper);
                    }
                    break;
                case Mapper.MozartTranslator:
                    {
                        _mo.SetMapper(new MozartTranslator());
                    }
                    break;
                case Mapper.SampleTranslator:
                    {
                        _mo.SetMapper(new SampleTranslator());
                    }
                    break;
                default: _mo.SetMapper(new BechTranslator());
                    break;
            }
        }

        /// <summary>
        /// Adds a pattern to the Cellular Automaton
        /// </summary>
        /// <param name="column"></param>
        /// <param name="row"></param>
        private void ApplyCaPattern(GameOfLife.GofPattern pattern, int column, int row) {
            if (this.InputMode == InputMode.Off)
                return;
            if (_ca == null) {
                if (ChosenCAType == CAType.GameOfLife) {
                    CaTypeSetup.SetupGameOfLife(ref _ca, _grid.GetLength(0), _grid.GetLength(1), 1, _grid);
                } else if (ChosenCAType == CAType.GameOfLifeEXT)
                    CaTypeSetup.SetupGameOfLife(ref _ca, _grid.GetLength(0), _grid.GetLength(1), NUMBER_OF_STATES, _grid);
                ChangeCaType(CAType.Off);
            }
            GameOfLife.AddGofPattern(_ca, pattern, column, row);
            IsPLaying = true;
            View.SystemMessage("Playing. " + pattern);
        }


        /// <summary>
        /// Reset the launchpad sized grid on the IView and the IHardWareView. If the ca type and config is one dimensional
        /// it add some state to the cells that are not clickable.
        /// </summary>
        public void ResetGrid() ]]></source>
</chunk>
<method name="ResetGrid" namespace="AutomaTones.Controller" type="AutomaTones.Controller.CAViewController" typeName="CAViewController" token="6000106" module="AutomaTones.exe"><hits><hit index="0" value="1"/>
<hit index="1" value="64"/>
<hit index="2" value="64"/>
<hit index="15" value="64"/>
<hit index="16" value="64"/>
<hit index="18" value="64"/>
<hit index="19" value="64"/>
<hit index="20" value="64"/>
<hit index="21" value="64"/>
<hit index="22" value="64"/>
<hit index="23" value="72"/>
<hit index="24" value="72"/>
<hit index="25" value="8"/>
<hit index="26" value="9"/>
<hit index="27" value="9"/>
<hit index="28" value="1"/>
<hit index="29" value="1"/>
<hit index="36" value="1"/>
<hit index="37" value="1"/>
<hit index="56" value="64"/>
<hit index="57" value="64"/>
<hit index="58" value="64"/>
<hit index="59" value="8"/>
<hit index="60" value="1"/>
<hit index="61" value="1"/>
</hits>
<coverage domain="userortestcode" unit="block" covered="12" total="23" coveredRatio="0.52173913043478259"/>
</method>
<chunk hits="1" offset="0000" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            for (]]></source>
</chunk>
<chunk hits="1" offset="0001" domain="userortestcode"><source><![CDATA[int i = 0;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="9" offset="006d" domain="userortestcode"><source><![CDATA[i < _grid.GetLength(0)]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[; ]]></source>
</chunk>
<chunk hits="8" offset="0069" domain="userortestcode"><source><![CDATA[i++]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[) ]]></source>
</chunk>
<chunk hits="8" offset="0005" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                for (]]></source>
</chunk>
<chunk hits="8" offset="0006" domain="userortestcode"><source><![CDATA[int j = 0;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="200" offset="0055" domain="userortestcode"><source><![CDATA[j < _grid.GetLength(1)]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[; ]]></source>
</chunk>
<chunk hits="192" offset="0051" domain="userortestcode"><source><![CDATA[j++]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[) ]]></source>
</chunk>
<chunk hits="64" offset="000a" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                    ]]></source>
</chunk>
<chunk hits="64" offset="000b" domain="userortestcode"><source><![CDATA[if (ChosenCAType == CAType.OneDimensional && !CellIsValid(i, j))]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                    ]]></source>
</chunk>
<chunk hits="0" offset="0023" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                        ]]></source>
</chunk>
<chunk hits="0" offset="0024" domain="userortestcode"><source><![CDATA[_grid[i, j] = new State(0, 8, 0);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                        ]]></source>
</chunk>
<chunk hits="0" offset="0039" domain="userortestcode"><source><![CDATA[continue;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                    }
                    ]]></source>
</chunk>
<chunk hits="64" offset="003b" domain="userortestcode"><source><![CDATA[_grid[i, j] = new State();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="192" offset="0050" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="8" offset="0068" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="1" offset="0080" domain="userortestcode"><source><![CDATA[if (_hardWareView != null)]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="0" offset="008d" domain="userortestcode"><source><![CDATA[_hardWareView.ClearGrid();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="1" offset="0099" domain="userortestcode"><source><![CDATA[if (View != null)]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="0" offset="00a6" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="0" offset="00a7" domain="userortestcode"><source><![CDATA[View.SetGridDimension(_grid.GetLength(0), _grid.GetLength(1));]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="0" offset="00cb" domain="userortestcode"><source><![CDATA[View.SetGrid(_grid);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="00dd" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
        ]]></source>
</chunk>
<chunk hits="1" offset="00de" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[

        /// <summary>
        /// Reset the rule grid on the IView and the IHardWareView. If the rule is one dimensional
        /// it add some state to the cells that are not clickable.
        /// </summary>
        private void ResetRuleGrid() ]]></source>
</chunk>
<method name="ResetRuleGrid" namespace="AutomaTones.Controller" type="AutomaTones.Controller.CAViewController" typeName="CAViewController" token="6000107" module="AutomaTones.exe"><hits><hit index="0" value="1"/>
<hit index="1" value="9"/>
<hit index="2" value="9"/>
<hit index="15" value="9"/>
<hit index="16" value="9"/>
<hit index="18" value="9"/>
<hit index="19" value="9"/>
<hit index="20" value="9"/>
<hit index="21" value="9"/>
<hit index="22" value="9"/>
<hit index="23" value="12"/>
<hit index="24" value="12"/>
<hit index="25" value="3"/>
<hit index="26" value="4"/>
<hit index="27" value="4"/>
<hit index="28" value="1"/>
<hit index="29" value="1"/>
<hit index="42" value="1"/>
<hit index="43" value="1"/>
<hit index="62" value="9"/>
<hit index="63" value="9"/>
<hit index="64" value="9"/>
<hit index="65" value="3"/>
<hit index="66" value="1"/>
<hit index="67" value="1"/>
</hits>
<coverage domain="userortestcode" unit="block" covered="12" total="24" coveredRatio="0.5"/>
</method>
<chunk hits="1" offset="0000" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            for (]]></source>
</chunk>
<chunk hits="1" offset="0001" domain="userortestcode"><source><![CDATA[int i = 0;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="4" offset="006b" domain="userortestcode"><source><![CDATA[i < _rule.GetLength(0)]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[; ]]></source>
</chunk>
<chunk hits="3" offset="0067" domain="userortestcode"><source><![CDATA[i++]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[)
                for (]]></source>
</chunk>
<chunk hits="3" offset="0005" domain="userortestcode"><source><![CDATA[int j = 0;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="30" offset="0054" domain="userortestcode"><source><![CDATA[j < _rule.GetLength(1)]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[; ]]></source>
</chunk>
<chunk hits="27" offset="0050" domain="userortestcode"><source><![CDATA[j++]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[) ]]></source>
</chunk>
<chunk hits="9" offset="0009" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                    ]]></source>
</chunk>
<chunk hits="9" offset="000a" domain="userortestcode"><source><![CDATA[if (ChosenCAType == CAType.OneDimensional && !CellIsValid(i, j))]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="0" offset="0022" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                        ]]></source>
</chunk>
<chunk hits="0" offset="0023" domain="userortestcode"><source><![CDATA[_rule[i, j] = new State(0, 8, 0);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                        ]]></source>
</chunk>
<chunk hits="0" offset="0038" domain="userortestcode"><source><![CDATA[continue;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                    }
                    ]]></source>
</chunk>
<chunk hits="9" offset="003a" domain="userortestcode"><source><![CDATA[_rule[i, j] = new State();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="27" offset="004f" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="1" offset="007e" domain="userortestcode"><source><![CDATA[if (_hardWareView != null)]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="0" offset="008b" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="0" offset="008c" domain="userortestcode"><source><![CDATA[_hardWareView.ClearGrid();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="0" offset="0098" domain="userortestcode"><source><![CDATA[_hardWareView.SetGrid(_rule);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="00aa" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="1" offset="00ab" domain="userortestcode"><source><![CDATA[if (View != null)]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="0" offset="00b8" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="0" offset="00b9" domain="userortestcode"><source><![CDATA[View.SetGridDimension(_rule.GetLength(0), _rule.GetLength(1));]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="0" offset="00dd" domain="userortestcode"><source><![CDATA[View.SetGrid(_rule);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="00ef" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
        ]]></source>
</chunk>
<chunk hits="1" offset="00f0" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[

        private int TimeStamp { get; set; }
        private IView View { get; set; }
        private CAType ChosenCAType { get; set; }
        private InputMode InputMode { get; set; }

        /// <summary>
        /// Trivial.
        /// Setup this controller with the view that has just registred itself to
        /// this controller. It assigns methods to delegates and eventhandlers. 
        /// </summary>
        public void SetUp() ]]></source>
</chunk>
<method name="SetUp" namespace="AutomaTones.Controller" type="AutomaTones.Controller.CAViewController" typeName="CAViewController" token="6000110" module="AutomaTones.exe"><hits><hit index="0" value="1"/>
<hit index="1" value="1"/>
<hit index="2" value="1"/>
<hit index="3" value="1"/>
<hit index="265" value="1"/>
</hits>
<coverage domain="userortestcode" unit="block" covered="2" total="86" coveredRatio="0.023255813953488372"/>
</method>
<chunk hits="1" offset="0000" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="1" offset="0001" domain="userortestcode"><source><![CDATA[View.OnCellClickEvent += CellClicked;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="0029" domain="userortestcode"><source><![CDATA[View.OnPlayButtonClickEvent += PlaySentFromUser;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="0051" domain="userortestcode"><source><![CDATA[View.OnPauseButtonClickEvent += Pause;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="0079" domain="userortestcode"><source><![CDATA[View.OnVolumeChangeEvent += SetVolume;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="00a1" domain="userortestcode"><source><![CDATA[View.OnChannelChangeEvent += SetChannel;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="00c9" domain="userortestcode"><source><![CDATA[View.OnOkButtonClickEvent += Ok;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="00f1" domain="userortestcode"><source><![CDATA[View.OnSaveButtonClickEvent += Save;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="0119" domain="userortestcode"><source><![CDATA[View.OnLoadButtonClickEvent += Load;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="0141" domain="userortestcode"><source><![CDATA[View.OnInputModeChangeEvent += ChangeInputMode;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="0169" domain="userortestcode"><source><![CDATA[View.OnCATypeChangeEvent += ChangeCaType;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="0191" domain="userortestcode"><source><![CDATA[View.OnMapperChangeEvent += ChangeMapper;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="01b9" domain="userortestcode"><source><![CDATA[View.OnRewindButtonClickEvent += Rewind;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="01e1" domain="userortestcode"><source><![CDATA[View.OnForwardButtonClickEvent += Forward;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="0209" domain="userortestcode"><source><![CDATA[View.OnApplyCaPatternEvent += ApplyCaPattern;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            //Aval data
            ]]></source>
</chunk>
<chunk hits="0" offset="0231" domain="userortestcode"><source><![CDATA[View.Patterns = Model.Utils.AutomatoneTypes.GetPatterns();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="0242" domain="userortestcode"><source><![CDATA[View.DisplayInputModes(Model.Utils.AutomatoneTypes.GetInputModes());]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="0253" domain="userortestcode"><source><![CDATA[View.DisplayCATypes(Model.Utils.AutomatoneTypes.GetCaTypes());]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="0264" domain="userortestcode"><source><![CDATA[View.DisplayMappers(Model.Utils.AutomatoneTypes.GetMappers());]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="0275" domain="userortestcode"><source><![CDATA[View.DisplayChannels(Channels);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
        ]]></source>
</chunk>
<chunk hits="0" offset="0287" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[

        [ContractInvariantMethod]
        private void Invariant() {
            Contract.Invariant(validTimestamp <= _caHistory.Count);
            Contract.Invariant(0 <= this.Volume && this.Volume <= 100);
            //if chosen CA type changes, no old rules should be kept.
            Contract.Invariant(Contract.OldValue(ChosenCAType) != ChosenCAType && rules.Count == 0 && _userIsSettingCARule);
            Contract.Invariant((_rule != null));
            Contract.Invariant(_grid != null);
            Contract.Invariant(rules != null);
            Contract.Invariant(InputMode == InputMode.Launchpad && _hardWareView != null);
            Contract.Invariant(0 <= TimeStamp);
            Contract.Invariant(_caReadyForReplay && _ca != null);
            Contract.Invariant(IsPLaying && _ca != null);
        }
    }
}
]]></source>
</chunk>
</document>
<document src="C:\Users\Anders\Documents\automatones\Visual Studio\AutomaTones\AutomaTones\Model\Automaton Model\State.cs" renderPrefix="s1"><chunk hits="-1" domain="unknown"><source><![CDATA[using System;
using System.Diagnostics.Contracts;

namespace AutomaTones.Model.Automaton_Model {
    /// <author>Anders Øland / anoe@itu.dk</author>
    /// <summary>
    /// The state of a cell represented by a discrete value within a given state space.. 
    /// NOTE: Ideally this would be implemented using generics so states could also be decimals.
    /// NOTE: But due to C#'s lack of type constraint options on value types - this was omitted.
    /// </summary>
    [Serializable]
    public class State {
        /// <summary>
        /// The lower boundary of the state space.
        /// </summary>
        public int SpaceMin { get; protected set; }

        /// <summary>
        /// The upper boundary of the state space.
        /// </summary>
        public int SpaceMax { get; protected set; }

        private int _currentState;

        /// <summary>
        /// Current state.
        /// </summary>
        public int CurrentState {
            get ]]></source>
</chunk>
<method name="get_CurrentState" namespace="AutomaTones.Model.Automaton_Model" type="AutomaTones.Model.Automaton_Model.State" typeName="State" token="60001ce" module="AutomaTones.exe"><hits><hit index="0" value="33"/>
<hit index="1" value="33"/>
</hits>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<chunk hits="33" offset="0000" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="33" offset="0001" domain="userortestcode"><source><![CDATA[return _currentState;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="33" offset="000a" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            protected internal set ]]></source>
</chunk>
<method name="set_CurrentState" namespace="AutomaTones.Model.Automaton_Model" type="AutomaTones.Model.Automaton_Model.State" typeName="State" token="60001cf" module="AutomaTones.exe"><hits><hit index="0" value="21"/>
<hit index="1" value="21"/>
<hit index="2" value="21"/>
</hits>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<chunk hits="21" offset="0000" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                Contract.Ensures(CurrentState == value);
                ]]></source>
</chunk>
<chunk hits="21" offset="0001" domain="userortestcode"><source><![CDATA[_currentState = value;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="42" offset="0008" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
        }

        private int _nextState;

        /// <summary>
        /// Next state.
        /// </summary>
        public int NextState {
            get { return _nextState; }
            protected internal set {
                Contract.Ensures(NextState == value);
                _nextState = value;
            }
        }

        /// <summary>
        /// Construct a new State. 
        /// </summary>
        /// <param name="spaceMin"></param>
        /// <param name="spaceMax"></param>
        /// <param name="currentState"></param>
        ]]></source>
</chunk>
<method name=".ctor" namespace="AutomaTones.Model.Automaton_Model" type="AutomaTones.Model.Automaton_Model.State" typeName="State" token="60001d2" module="AutomaTones.exe"><hits><hit index="0" value="100"/>
<hit index="1" value="100"/>
<hit index="2" value="100"/>
<hit index="3" value="100"/>
<hit index="4" value="100"/>
<hit index="5" value="100"/>
<hit index="6" value="100"/>
<hit index="7" value="100"/>
<hit index="8" value="100"/>
</hits>
<coverage domain="userortestcode" unit="block" covered="4" total="4" coveredRatio="1"/>
</method>
<chunk hits="100" offset="0000" domain="userortestcode"><source><![CDATA[public State(int spaceMin = 0, int spaceMax = 1, int currentState = 0)]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="100" offset="0007" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="100" offset="0008" domain="userortestcode"><source><![CDATA[SpaceMin = spaceMin;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="100" offset="0010" domain="userortestcode"><source><![CDATA[SpaceMax = spaceMax;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="100" offset="0018" domain="userortestcode"><source><![CDATA[_currentState = currentState;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
        ]]></source>
</chunk>
<chunk hits="200" offset="001f" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[

        [ContractInvariantMethod]
        private void ObjInvariant() {
            Contract.Invariant(SpaceMin < SpaceMax);
            Contract.Invariant(SpaceMin <= _currentState && SpaceMax >= _currentState);
            Contract.Invariant(SpaceMin <= _nextState && SpaceMax >= _nextState);
        }
    }
}]]></source>
</chunk>
</document>
<document src="C:\Users\Anders\Documents\automatones\Visual Studio\AutomaTones\AutomaTones\View\Midi Out View\MidiOut.cs" renderPrefix="s2"><chunk hits="-1" domain="unknown"><source><![CDATA[using System;
using System.Collections.Generic;
using System.Diagnostics.Contracts;
using AutomaTones.HW_Sense_Compute;
using AutomaTones.Model.Automaton_Model;
using AutomaTones.Model.MIDI;
using Midi;
using Microsoft.Pex.Framework;

namespace AutomaTones.View.Midi_Out_View {
    /// <summary>
    /// MidiOut is holding a reference to the virtual midi driver, LoopBe.
    /// Which lets the program communicate with other programs through standard MIDI.
    /// </summary>
    /// <author>Anders Bech Mellson, anbh@itu.dk</author>
    [PexClass]
    class MidiOut : IHardwareView {
        private Channel _channel;
        private IMapper _mapper;
        private int _volume;

        /// <summary>
        /// MidiOut constructor, that initialises key components for use.
        /// Also the constructor opens the Midi output, if it is not already open.
        /// </summary>
        /// <param name="channel">The Midi channel the MidiOut will send messages on.</param>
        /// <param name="mapper">The mapper that MidiOut will use to translate State[,] grid's into Midi notes.</param>
        ]]></source>
</chunk>
<method name=".ctor" namespace="AutomaTones.View.Midi_Out_View" type="AutomaTones.View.Midi_Out_View.MidiOut" typeName="MidiOut" token="60000c4" module="AutomaTones.exe"><hits><hit index="0" value="1"/>
<hit index="1" value="1"/>
<hit index="2" value="1"/>
<hit index="3" value="1"/>
<hit index="4" value="1"/>
<hit index="5" value="1"/>
<hit index="6" value="1"/>
<hit index="7" value="1"/>
<hit index="8" value="1"/>
<hit index="9" value="1"/>
<hit index="10" value="2"/>
<hit index="16" value="1"/>
<hit index="17" value="1"/>
<hit index="18" value="1"/>
</hits>
<tags><tag offset="001b">call to uninstrumented method OutputDevice.get_IsOpen()</tag>
</tags>
<coverage domain="userortestcode" unit="block" covered="4" total="6" coveredRatio="0.66666666666666663"/>
</method>
<chunk hits="1" offset="0000" domain="userortestcode"><source><![CDATA[public MidiOut(Channel channel, IMapper mapper)]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="1" offset="0007" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            Contract.Requires(mapper != null);
            ]]></source>
</chunk>
<chunk hits="1" offset="0008" domain="userortestcode"><source><![CDATA[_channel = channel;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="2" offset="000f" domain="userortestcode"><source><![CDATA[_mapper = mapper;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="2" offset="0016" domain="userortestcode" tag="true"><tooltip><![CDATA[call to uninstrumented method OutputDevice.get_IsOpen()]]></tooltip>
<source><![CDATA[if (!ConnectVirtualMidi.Out.IsOpen)]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="0" offset="0024" domain="userortestcode"><source><![CDATA[ConnectVirtualMidi.Out.Open();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="1" offset="002f" domain="userortestcode"><source><![CDATA[_volume = 100;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
        ]]></source>
</chunk>
<chunk hits="2" offset="0037" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[

        /// <summary>
        /// Transforms a State[,] grid into Midi notes that is sent to the connected output.
        /// The transformation is being calculated by the mapper.
        /// </summary>
        /// <param name="stateGrid">Grid to be played by MidiOut.</param>
        [PexMethod]
        public void SetGrid(State[,] stateGrid) {
            //Contract.Requires(stateGrid!=null);
            List<NoteOut> notesToPlay = _mapper.Translate(stateGrid);
            foreach (NoteOut note in notesToPlay) {
                ConnectVirtualMidi.Out.SendNoteOn(_channel,note.Pitch,_volume*note.Velocity/100);
                if (note.Controller != 0)
                    ConnectVirtualMidi.Out.SendControlChange(_channel, Control.Volume + note.Controller,
                                                             note.ControllerValue);
            }
        }

        /// <summary>
        /// Silences all the notes being played by this MidiOut.
        /// </summary>
        [PexMethod]
        public void ClearGrid() {
            ConnectVirtualMidi.Out.SilenceAllNotes();
        }

        /// <summary>
        /// Change the MidiOutput channel.
        /// </summary>
        /// <param name="channel">The Channel that the MidiOut should send on</param>
        [PexMethod]
        public void SetChannel(Channel channel) ]]></source>
</chunk>
<method name="SetChannel" namespace="AutomaTones.View.Midi_Out_View" type="AutomaTones.View.Midi_Out_View.MidiOut" typeName="MidiOut" token="60000c7" module="AutomaTones.exe"><hits><hit index="0" value="1"/>
<hit index="1" value="1"/>
<hit index="2" value="1"/>
</hits>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<chunk hits="1" offset="0000" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="1" offset="0001" domain="userortestcode"><source><![CDATA[_channel = channel;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
        ]]></source>
</chunk>
<chunk hits="2" offset="0008" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[

        /// <summary>
        /// Change the Midi out volume relatively compared to the velocity of each note.
        /// If you send 100% then the notes will play at their normal velocity,
        /// sending lower volumes will turn each notes velocity down.
        /// </summary>
        /// <param name="volume">Volume in %.</param>
        [PexMethod]
        public void SetVolume(int volume) ]]></source>
</chunk>
<method name="SetVolume" namespace="AutomaTones.View.Midi_Out_View" type="AutomaTones.View.Midi_Out_View.MidiOut" typeName="MidiOut" token="60000c8" module="AutomaTones.exe"><hits><hit index="0" value="1"/>
<hit index="1" value="1"/>
<hit index="2" value="1"/>
</hits>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<chunk hits="1" offset="0000" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            Contract.Requires(volume<=100 && volume >=0);
            ]]></source>
</chunk>
<chunk hits="1" offset="0001" domain="userortestcode"><source><![CDATA[_volume = volume;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
        ]]></source>
</chunk>
<chunk hits="2" offset="0008" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[

        /// <summary>
        /// Change the mapper on the MidiOut. The mapper is in charge of the way that
        /// Cellular Automatones gets translated into Midi notes.
        /// Have fun with trying different mappers.
        /// </summary>
        /// <param name="mapper">The new mapper you wish to assign to this MidiOut.</param>
        [PexMethod]
        public void SetMapper(IMapper mapper) {
            Contract.Requires(mapper != null);
            _mapper = mapper;
        }


        /// <summary>
        /// Inherited method from IHardwareView.
        /// Could convert one state to a MidiNote,
        /// but it wasn't needed in the end as our design changed.
        /// </summary>
        [PexMethod]
        public void SetCell(int x, int y, State state)
        {
            throw new NotImplementedException();
        }

        /// <summary>
        /// Inherited method from IHardwareView.
        /// Not implemented here, because I couldn't figure out a use for it.
        /// </summary>
        [PexMethod]
        public void SetArbitraryGrid(State[,] stateGrid)
        {
            throw new NotImplementedException();
        }

        [ContractInvariantMethod]
        private void Invariant() {
            Contract.Invariant(_mapper!=null);
        }
    }
}
]]></source>
</chunk>
</document>
<document src="C:\Users\Anders\Documents\automatones\Visual Studio\AutomaTones\AutomaTones\HW Sense Compute\ConnectVirtualMidi.cs" renderPrefix="s3"><chunk hits="-1" domain="unknown"><source><![CDATA[using System;
using Midi;
using Microsoft.Pex.Framework;

namespace AutomaTones.HW_Sense_Compute {
    /// <summary>
    /// Handles the setup of the Virtual Midi driver needed to communicate from our program to the other application handling sound.
    /// </summary>
    /// <author>Anders Bech Mellson, anbh@itu.dk</author>
    [PexClass]
    partial class ConnectVirtualMidi : IConnect
    {
        public static OutputDevice Out;

        int? _outDevice;
        const String Error = "No Virtual Midi driver present. Have you installed the driver?";
        
        ]]></source>
</chunk>
<method name=".ctor" namespace="AutomaTones.HW_Sense_Compute" type="AutomaTones.HW_Sense_Compute.ConnectVirtualMidi" typeName="ConnectVirtualMidi" token="600020c" module="AutomaTones.exe"><hits><hit index="0" value="1"/>
<hit index="1" value="1"/>
<hit index="2" value="1"/>
<hit index="3" value="1"/>
<hit index="4" value="1"/>
<hit index="5" value="1"/>
<hit index="6" value="1"/>
<hit index="7" value="1"/>
<hit index="8" value="1"/>
<hit index="9" value="1"/>
<hit index="10" value="2"/>
</hits>
<coverage domain="userortestcode" unit="block" covered="5" total="5" coveredRatio="1"/>
</method>
<chunk hits="1" offset="0000" domain="userortestcode"><source><![CDATA[public ConnectVirtualMidi()]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="1" offset="0007" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="1" offset="0008" domain="userortestcode"><source><![CDATA[Out = OutputDevice.InstalledDevices[GetOutDeviceNumber()];]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
        ]]></source>
</chunk>
<chunk hits="3" offset="001d" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[

        /// <summary>
        /// Is the Virtual Midi driver connected?
        /// </summary>
        [PexMethod]
        public bool Connected() ]]></source>
</chunk>
<method name="Connected" namespace="AutomaTones.HW_Sense_Compute" type="AutomaTones.HW_Sense_Compute.ConnectVirtualMidi" typeName="ConnectVirtualMidi" token="600020d" module="AutomaTones.exe"><hits><hit index="0" value="1"/>
</hits>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<chunk hits="1" offset="0000" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="1" offset="0001" domain="userortestcode"><source><![CDATA[return Out != null;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
        ]]></source>
</chunk>
<chunk hits="1" offset="000f" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[

        /// <summary>
        /// Scans through the connected output devices and sets _outDevice to match the one containing the LoopBe (Virtual Midi Driver).
        /// </summary>
        private void SetOutDeviceNumber() ]]></source>
</chunk>
<method name="SetOutDeviceNumber" namespace="AutomaTones.HW_Sense_Compute" type="AutomaTones.HW_Sense_Compute.ConnectVirtualMidi" typeName="ConnectVirtualMidi" token="600020e" module="AutomaTones.exe"><hits><hit index="0" value="1"/>
<hit index="1" value="1"/>
<hit index="2" value="1"/>
<hit index="3" value="1"/>
<hit index="4" value="1"/>
<hit index="5" value="1"/>
<hit index="6" value="2"/>
<hit index="12" value="1"/>
<hit index="13" value="1"/>
<hit index="14" value="1"/>
<hit index="15" value="1"/>
<hit index="16" value="1"/>
<hit index="17" value="2"/>
<hit index="18" value="2"/>
<hit index="19" value="2"/>
<hit index="20" value="2"/>
<hit index="21" value="4"/>
<hit index="22" value="2"/>
<hit index="23" value="2"/>
<hit index="24" value="2"/>
<hit index="25" value="4"/>
<hit index="26" value="2"/>
<hit index="27" value="2"/>
<hit index="28" value="1"/>
<hit index="29" value="1"/>
<hit index="31" value="1"/>
<hit index="32" value="1"/>
<hit index="33" value="1"/>
<hit index="34" value="2"/>
<hit index="35" value="2"/>
<hit index="36" value="2"/>
<hit index="37" value="4"/>
<hit index="39" value="1"/>
<hit index="40" value="2"/>
<hit index="44" value="1"/>
<hit index="45" value="1"/>
<hit index="46" value="1"/>
<hit index="47" value="1"/>
<hit index="48" value="2"/>
<hit index="52" value="1"/>
</hits>
<tags><tag offset="003a">call to uninstrumented method DeviceBase.get_Name()</tag>
</tags>
<coverage domain="userortestcode" unit="block" covered="18" total="20" coveredRatio="0.9"/>
</method>
<chunk hits="1" offset="0000" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="1" offset="0001" domain="userortestcode"><source><![CDATA[if (OutputDevice.InstalledDevices.Count == 0)]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="0" offset="0015" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="0" offset="0016" domain="userortestcode"><source><![CDATA[throw new System.ArgumentException(Error);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            }
            ]]></source>
</chunk>
<chunk hits="1" offset="0021" domain="userortestcode"><source><![CDATA[int i = 0;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="1" offset="0023" domain="userortestcode"><source><![CDATA[foreach]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ (]]></source>
</chunk>
<chunk hits="2" offset="0031" domain="userortestcode"><source><![CDATA[OutputDevice device]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="4" offset="0064" domain="userortestcode"><source><![CDATA[in]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="1" offset="0024" domain="userortestcode"><source><![CDATA[OutputDevice.InstalledDevices]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[) ]]></source>
</chunk>
<chunk hits="6" offset="0038" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="6" offset="0039" domain="userortestcode" tag="true"><tooltip><![CDATA[call to uninstrumented method DeviceBase.get_Name()]]></tooltip>
<source><![CDATA[if (device.Name.Contains("LoopBe"))]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="1" offset="0050" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                    ]]></source>
</chunk>
<chunk hits="1" offset="0051" domain="userortestcode"><source><![CDATA[_outDevice = i;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                    ]]></source>
</chunk>
<chunk hits="2" offset="005d" domain="userortestcode"><source><![CDATA[break;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                }
                ]]></source>
</chunk>
<chunk hits="1" offset="005f" domain="userortestcode"><source><![CDATA[i++;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="1" offset="0063" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
        ]]></source>
</chunk>
<chunk hits="2" offset="0081" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[

        /// <summary>
        /// Tries to get the outDevice int. Throws an exception that is handled by MainController if no Virtual Midi driver is connected.
        /// </summary>
        private int GetOutDeviceNumber() ]]></source>
</chunk>
<method name="GetOutDeviceNumber" namespace="AutomaTones.HW_Sense_Compute" type="AutomaTones.HW_Sense_Compute.ConnectVirtualMidi" typeName="ConnectVirtualMidi" token="600020f" module="AutomaTones.exe"><hits><hit index="0" value="1"/>
<hit index="1" value="1"/>
<hit index="2" value="1"/>
<hit index="3" value="1"/>
<hit index="4" value="1"/>
<hit index="5" value="1"/>
<hit index="11" value="1"/>
<hit index="12" value="1"/>
<hit index="13" value="1"/>
<hit index="14" value="1"/>
</hits>
<coverage domain="userortestcode" unit="block" covered="5" total="7" coveredRatio="0.7142857142857143"/>
</method>
<chunk hits="1" offset="0000" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="1" offset="0001" domain="userortestcode"><source><![CDATA[SetOutDeviceNumber();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="1" offset="0008" domain="userortestcode"><source><![CDATA[if (_outDevice == null)]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="0" offset="0017" domain="userortestcode"><source><![CDATA[throw new System.ArgumentException(Error);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="1" offset="0022" domain="userortestcode"><source><![CDATA[return (int)_outDevice;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
        ]]></source>
</chunk>
<chunk hits="1" offset="0030" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
    }
}
]]></source>
</chunk>
</document>
<document src="C:\Users\Anders\Documents\automatones\Visual Studio\AutomaTones\AutomaTones\Model\MIDI\Mappers\BechTranslator.cs" renderPrefix="s4"><chunk hits="-1" domain="unknown"><source><![CDATA[using System;
using System.Collections.Generic;
using Midi;
using AutomaTones.Model.Automaton_Model;
using Microsoft.Pex.Framework;

namespace AutomaTones.Model.MIDI.Mappers
{
    /// <summary>
    /// 
    /// </summary>
    /// <author>Anders Bech Mellson, anbh@itu.dk</author>
    [PexClass]
    partial class BechTranslator : IMapper
    {
        ]]></source>
</chunk>
<method name=".ctor" namespace="AutomaTones.Model.MIDI.Mappers" type="AutomaTones.Model.MIDI.Mappers.BechTranslator" typeName="BechTranslator" token="6000124" module="AutomaTones.exe"><hits><hit index="0" value="1"/>
<hit index="1" value="1"/>
<hit index="3" value="1"/>
<hit index="4" value="1"/>
<hit index="5" value="1"/>
<hit index="6" value="1"/>
<hit index="7" value="1"/>
</hits>
<coverage domain="userortestcode" unit="block" covered="3" total="3" coveredRatio="1"/>
</method>
<chunk hits="1" offset="0000" domain="userortestcode"><source><![CDATA[private readonly List<NoteOut> _notes = new List<NoteOut>();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[

        [PexMethod]
        public List<NoteOut> Translate(State[,] grid) ]]></source>
</chunk>
<method name="Translate" namespace="AutomaTones.Model.MIDI.Mappers" type="AutomaTones.Model.MIDI.Mappers.BechTranslator" typeName="BechTranslator" token="6000115" module="AutomaTones.exe"><hits><hit index="0" value="1"/>
<hit index="1" value="1"/>
<hit index="3" value="1"/>
<hit index="4" value="1"/>
<hit index="5" value="1"/>
<hit index="6" value="1"/>
<hit index="7" value="1"/>
<hit index="8" value="2"/>
<hit index="9" value="10"/>
<hit index="10" value="10"/>
<hit index="11" value="9"/>
<hit index="12" value="9"/>
<hit index="13" value="9"/>
<hit index="14" value="9"/>
<hit index="15" value="18"/>
<hit index="16" value="5"/>
<hit index="17" value="5"/>
<hit index="18" value="5"/>
<hit index="19" value="5"/>
<hit index="20" value="5"/>
<hit index="21" value="5"/>
<hit index="22" value="5"/>
<hit index="23" value="10"/>
<hit index="24" value="5"/>
<hit index="25" value="5"/>
<hit index="26" value="5"/>
<hit index="27" value="5"/>
<hit index="28" value="5"/>
<hit index="29" value="10"/>
<hit index="30" value="5"/>
<hit index="31" value="5"/>
<hit index="32" value="5"/>
<hit index="33" value="10"/>
<hit index="34" value="5"/>
<hit index="36" value="5"/>
<hit index="37" value="5"/>
<hit index="38" value="5"/>
<hit index="39" value="5"/>
<hit index="40" value="10"/>
<hit index="41" value="1"/>
<hit index="42" value="1"/>
<hit index="43" value="1"/>
<hit index="44" value="1"/>
<hit index="45" value="1"/>
<hit index="46" value="1"/>
<hit index="47" value="2"/>
<hit index="48" value="1"/>
<hit index="49" value="1"/>
<hit index="50" value="1"/>
<hit index="51" value="1"/>
<hit index="52" value="1"/>
<hit index="53" value="2"/>
<hit index="54" value="1"/>
<hit index="55" value="1"/>
<hit index="56" value="1"/>
<hit index="57" value="2"/>
<hit index="58" value="1"/>
<hit index="60" value="1"/>
<hit index="61" value="1"/>
<hit index="62" value="1"/>
<hit index="63" value="1"/>
<hit index="64" value="2"/>
<hit index="65" value="1"/>
<hit index="66" value="1"/>
<hit index="67" value="1"/>
<hit index="68" value="1"/>
<hit index="69" value="1"/>
<hit index="70" value="1"/>
<hit index="71" value="2"/>
<hit index="72" value="1"/>
<hit index="73" value="1"/>
<hit index="74" value="1"/>
<hit index="75" value="1"/>
<hit index="76" value="1"/>
<hit index="77" value="2"/>
<hit index="78" value="1"/>
<hit index="79" value="1"/>
<hit index="80" value="1"/>
<hit index="81" value="2"/>
<hit index="82" value="1"/>
<hit index="84" value="1"/>
<hit index="85" value="1"/>
<hit index="86" value="1"/>
<hit index="87" value="1"/>
<hit index="88" value="2"/>
<hit index="89" value="11"/>
<hit index="90" value="2"/>
<hit index="91" value="7"/>
<hit index="92" value="1"/>
<hit index="93" value="1"/>
<hit index="94" value="4"/>
<hit index="95" value="1"/>
<hit index="96" value="1"/>
<hit index="97" value="1"/>
<hit index="98" value="10"/>
<hit index="99" value="7"/>
<hit index="100" value="1"/>
<hit index="101" value="1"/>
</hits>
<tags><tag offset="00ad">call to uninstrumented method System.Int32 System.Random.Next(System.Int32 maxValue)</tag>
</tags>
<coverage domain="userortestcode" unit="block" covered="31" total="31" coveredRatio="1"/>
</method>
<chunk hits="1" offset="0000" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="1" offset="0001" domain="userortestcode"><source><![CDATA[Random random = new Random();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="1" offset="0007" domain="userortestcode"><source><![CDATA[_notes.Clear();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            for (]]></source>
</chunk>
<chunk hits="3" offset="0013" domain="userortestcode"><source><![CDATA[int x = 0;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="26" offset="0129" domain="userortestcode"><source><![CDATA[x < grid.GetLength(0)]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[;]]></source>
</chunk>
<chunk hits="23" offset="0125" domain="userortestcode"><source><![CDATA[x++]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[)
                for (]]></source>
</chunk>
<chunk hits="7" offset="001a" domain="userortestcode"><source><![CDATA[int y = 0;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="12" offset="0112" domain="userortestcode"><source><![CDATA[y < grid.GetLength(1)]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[; ]]></source>
</chunk>
<chunk hits="5" offset="010e" domain="userortestcode"><source><![CDATA[y++]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[)
                    ]]></source>
</chunk>
<chunk hits="10" offset="0021" domain="userortestcode"><source><![CDATA[if (grid[x, y].CurrentState > 0)]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="5" offset="003d" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                        ]]></source>
</chunk>
<chunk hits="5" offset="003e" domain="userortestcode"><source><![CDATA[if (grid[x, y].CurrentState == 1)]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="5" offset="0057" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                            ]]></source>
</chunk>
<chunk hits="5" offset="0058" domain="userortestcode"><source><![CDATA[_notes.Add(new NoteOut(Pitch.G0, random.Next(128), 50, random.Next(20)));]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                            ]]></source>
</chunk>
<chunk hits="15" offset="0080" domain="userortestcode"><source><![CDATA[break;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                        }
                        ]]></source>
</chunk>
<chunk hits="1" offset="0085" domain="userortestcode"><source><![CDATA[if (grid[x, y].CurrentState == 3)]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="1" offset="009e" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                            ]]></source>
</chunk>
<chunk hits="1" offset="009f" domain="userortestcode" tag="true"><tooltip><![CDATA[call to uninstrumented method System.Int32 System.Random.Next(System.Int32 maxValue)]]></tooltip>
<source><![CDATA[_notes.Add(new NoteOut(Pitch.F0, random.Next(128), 50, random.Next(20)));]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                            ]]></source>
</chunk>
<chunk hits="3" offset="00c7" domain="userortestcode"><source><![CDATA[break;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                        }
                        ]]></source>
</chunk>
<chunk hits="1" offset="00c9" domain="userortestcode"><source><![CDATA[if (grid[x, y].CurrentState == 5)]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="1" offset="00e2" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                            ]]></source>
</chunk>
<chunk hits="1" offset="00e3" domain="userortestcode"><source><![CDATA[_notes.Add(new NoteOut(Pitch.FSharp0, random.Next(128), 50, random.Next(20)));]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                            ]]></source>
</chunk>
<chunk hits="3" offset="010b" domain="userortestcode"><source><![CDATA[break;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                        }
                    ]]></source>
</chunk>
<chunk hits="1" offset="010d" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="1" offset="013c" domain="userortestcode"><source><![CDATA[return _notes;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
        ]]></source>
</chunk>
<chunk hits="1" offset="0145" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
    }
}
]]></source>
</chunk>
</document>
<document src="C:\Users\Anders\Documents\automatones\Visual Studio\AutomaTones\AutomaTones\Controller\MainController.cs" renderPrefix="s5"><chunk hits="-1" domain="unknown"><source><![CDATA[/**
 * The Maincontroller knows all controllers in the system. Thus master volume, pause, 
 * play etc. can easily be controlled from here. Views can register themselves to the maincontroller
 * on when apropiate. The main controller choses what IController sub-type that will control a 
 * registring view.
 * Author: Anders Høst | ahkj@itu.dk
 * Date: 05 Dec 2010
 */

using System;
using System.Collections.Generic;
using System.Diagnostics.Contracts;
using System.Linq;
using System.Threading;
using AutomaTones.HW_Sense_Compute;
using AutomaTones.Model.MIDI;
using AutomaTones.Model.MIDI.Mappers;
using AutomaTones.View;
using AutomaTones.View.Launchpad_View;
using AutomaTones.View.Midi_Out_View;
using Microsoft.Pex.Framework;
using Midi;

namespace AutomaTones.Controller {
    [PexClass]
    public partial class MainController {
        private List<IController<IView>> _CAcontrollers = new List<IController<IView>>();
        private IController<IMasterView> _masterViewController;
        private List<Channel> _midiChannels = new List<Channel>();
        private IHardwareView _hardWareView;
        private ComputeLaunchpad _computeLaunchpad;
        public static bool LaunchpadConnected;
        public static Tempo Tempo;

        [PexMethod]
        public void Init() ]]></source>
</chunk>
<method name="Init" namespace="AutomaTones.Controller" type="AutomaTones.Controller.MainController" typeName="MainController" token="600018e" module="AutomaTones.exe"><hits><hit index="0" value="1"/>
<hit index="1" value="1"/>
<hit index="3" value="1"/>
<hit index="4" value="1"/>
<hit index="5" value="1"/>
<hit index="6" value="1"/>
<hit index="8" value="1"/>
<hit index="9" value="1"/>
<hit index="10" value="1"/>
<hit index="11" value="1"/>
<hit index="12" value="1"/>
<hit index="13" value="2"/>
<hit index="14" value="1"/>
<hit index="15" value="1"/>
<hit index="19" value="1"/>
<hit index="21" value="1"/>
<hit index="22" value="1"/>
<hit index="23" value="1"/>
</hits>
<tags><tag offset="0028">call to uninstrumented method System.String System.ArgumentException.get_Message()</tag>
</tags>
<coverage domain="userortestcode" unit="block" covered="8" total="9" coveredRatio="0.88888888888888884"/>
</method>
<chunk hits="1" offset="0000" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            // Global tempo used
            ]]></source>
</chunk>
<chunk hits="1" offset="0001" domain="userortestcode"><source><![CDATA[Tempo = new Tempo(110);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="1" offset="000d" domain="userortestcode"><source><![CDATA[AddChannels();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            
            // Try to make the connection to the Launchpad. Handles the exception if it's not present.
            try ]]></source>
</chunk>
<chunk hits="1" offset="0014" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="1" offset="0015" domain="userortestcode"><source><![CDATA[SetupLaunchpad();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="0" offset="001c" domain="userortestcode"><source><![CDATA[LaunchpadConnected = true;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="0022" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="1" offset="0025" domain="userortestcode"><source><![CDATA[catch (Exception ex)]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="1" offset="0026" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="1" offset="0027" domain="userortestcode" tag="true"><tooltip><![CDATA[call to uninstrumented method System.String System.ArgumentException.get_Message()]]></tooltip>
<source><![CDATA[Console.WriteLine(ex.Message);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="1" offset="0033" domain="userortestcode"><source><![CDATA[LaunchpadConnected = false;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="1" offset="0039" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="1" offset="003d" domain="userortestcode"><source><![CDATA[ThreadPool.QueueUserWorkItem(delegate { Run(); });]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
        ]]></source>
</chunk>
<chunk hits="1" offset="004f" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[

        /// <summary>
        /// Add a view that implements the IVEW interface.
        /// </summary>
        /// <param name="view"></param>
        [PexMethod]
        public void AddIView(IView view) ]]></source>
</chunk>
<method name="AddIView" namespace="AutomaTones.Controller" type="AutomaTones.Controller.MainController" typeName="MainController" token="600018f" module="AutomaTones.exe"><hits><hit index="0" value="1"/>
<hit index="1" value="1"/>
<hit index="3" value="1"/>
<hit index="4" value="1"/>
<hit index="5" value="1"/>
<hit index="6" value="1"/>
<hit index="7" value="1"/>
<hit index="8" value="1"/>
<hit index="9" value="2"/>
<hit index="10" value="1"/>
<hit index="11" value="1"/>
<hit index="12" value="1"/>
<hit index="13" value="2"/>
<hit index="14" value="1"/>
<hit index="22" value="1"/>
<hit index="23" value="1"/>
<hit index="25" value="1"/>
<hit index="44" value="1"/>
<hit index="45" value="1"/>
</hits>
<coverage domain="userortestcode" unit="block" covered="7" total="15" coveredRatio="0.46666666666666667"/>
</method>
<chunk hits="1" offset="0000" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            Contract.Requires(view != null);
            Contract.Ensures(Contract.OldValue(_CAcontrollers.Count) < _CAcontrollers.Count);
            ]]></source>
</chunk>
<chunk hits="1" offset="0001" domain="userortestcode"><source><![CDATA[IController<IView> con = new CAViewController();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[

            ]]></source>
</chunk>
<chunk hits="1" offset="0007" domain="userortestcode"><source><![CDATA[con.Channels = MidiChannels;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="0014" domain="userortestcode"><source><![CDATA[con.AddView(view);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="001c" domain="userortestcode"><source><![CDATA[if(_hardWareView!=null)]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
              ]]></source>
</chunk>
<chunk hits="0" offset="0029" domain="userortestcode"><source><![CDATA[((CAViewController)con).AddHwView(_hardWareView);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[

            ]]></source>
</chunk>
<chunk hits="1" offset="003b" domain="userortestcode"><source><![CDATA[con.SetUp();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="1" offset="0044" domain="userortestcode"><source><![CDATA[lock (_CAcontrollers)]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="0054" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="0" offset="0055" domain="userortestcode"><source><![CDATA[((List<IController<IView>>) _CAcontrollers).Add(con);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="0062" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="0076" domain="userortestcode"><source><![CDATA[ConnectLaunchpadToControllers();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
        ]]></source>
</chunk>
<chunk hits="0" offset="007d" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[

        /// <summary>
        /// The heart beat of the system. Pulsates a base beat to all VaViewControllers.
        /// </summary>
        [PexMethod]
        private void Run() ]]></source>
</chunk>
<method name="Run" namespace="AutomaTones.Controller" type="AutomaTones.Controller.MainController" typeName="MainController" token="6000190" module="AutomaTones.exe"><hits><hit index="0" value="1"/>
<hit index="1" value="770"/>
<hit index="2" value="770"/>
<hit index="3" value="770"/>
<hit index="4" value="770"/>
<hit index="5" value="770"/>
<hit index="6" value="770"/>
<hit index="7" value="770"/>
<hit index="8" value="1540"/>
<hit index="21" value="770"/>
<hit index="22" value="769"/>
<hit index="23" value="769"/>
<hit index="30" value="769"/>
<hit index="31" value="769"/>
<hit index="32" value="769"/>
<hit index="33" value="769"/>
<hit index="36" value="769"/>
<hit index="37" value="769"/>
<hit index="38" value="769"/>
<hit index="39" value="769"/>
<hit index="40" value="1538"/>
<hit index="53" value="769"/>
<hit index="54" value="769"/>
<hit index="55" value="769"/>
<hit index="62" value="769"/>
<hit index="63" value="769"/>
<hit index="64" value="769"/>
<hit index="65" value="769"/>
<hit index="71" value="769"/>
<hit index="72" value="769"/>
<hit index="73" value="769"/>
<hit index="76" value="769"/>
<hit index="77" value="769"/>
<hit index="78" value="769"/>
<hit index="79" value="1538"/>
<hit index="80" value="769"/>
<hit index="81" value="769"/>
</hits>
<coverage domain="userortestcode" unit="block" covered="15" total="27" coveredRatio="0.55555555555555558"/>
</method>
<chunk hits="1" offset="0000" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="770" offset="00eb" domain="userortestcode"><source><![CDATA[while (true)]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="770" offset="0006" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="770" offset="0009" domain="userortestcode"><source><![CDATA[lock (_CAcontrollers)]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="770" offset="0019" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                    ]]></source>
</chunk>
<chunk hits="770" offset="001a" domain="userortestcode"><source><![CDATA[foreach]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ (]]></source>
</chunk>
<chunk hits="0" offset="0029" domain="userortestcode"><source><![CDATA[CAViewController c]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="2310" offset="0050" domain="userortestcode"><source><![CDATA[in]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="770" offset="001b" domain="userortestcode"><source><![CDATA[_CAcontrollers]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[) ]]></source>
</chunk>
<chunk hits="0" offset="0036" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                        ]]></source>
</chunk>
<chunk hits="0" offset="0037" domain="userortestcode"><source><![CDATA[if (c.IsPLaying)]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="0" offset="0046" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                            ]]></source>
</chunk>
<chunk hits="0" offset="0047" domain="userortestcode"><source><![CDATA[c.Evolve();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                        ]]></source>
</chunk>
<chunk hits="0" offset="004e" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                    ]]></source>
</chunk>
<chunk hits="0" offset="004f" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                    ]]></source>
</chunk>
<chunk hits="769" offset="006f" domain="userortestcode"><source><![CDATA[foreach]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ (]]></source>
</chunk>
<chunk hits="0" offset="007e" domain="userortestcode"><source><![CDATA[CAViewController c]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="2307" offset="00a5" domain="userortestcode"><source><![CDATA[in]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="769" offset="0070" domain="userortestcode"><source><![CDATA[_CAcontrollers]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[) ]]></source>
</chunk>
<chunk hits="0" offset="008b" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                        ]]></source>
</chunk>
<chunk hits="0" offset="008c" domain="userortestcode"><source><![CDATA[if (c.IsPLaying)]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="0" offset="009b" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                            ]]></source>
</chunk>
<chunk hits="0" offset="009c" domain="userortestcode"><source><![CDATA[c.Play();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                        ]]></source>
</chunk>
<chunk hits="0" offset="00a3" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                    ]]></source>
</chunk>
<chunk hits="0" offset="00a4" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="769" offset="00c4" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="769" offset="00da" domain="userortestcode"><source><![CDATA[Thread.Sleep(Tempo.SixteenthNote());]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="769" offset="00ea" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
        }

        /// <summary>
        /// Adding a masterview to a maincontroller will replace the existing masterview.
        /// </summary>
        /// <param name="?"></param>
       [PexMethod]
        public void AddMasterView(IMasterView imv) ]]></source>
</chunk>
<method name="AddMasterView" namespace="AutomaTones.Controller" type="AutomaTones.Controller.MainController" typeName="MainController" token="6000191" module="AutomaTones.exe"><hits><hit index="0" value="1"/>
<hit index="1" value="1"/>
<hit index="3" value="1"/>
<hit index="4" value="1"/>
<hit index="5" value="1"/>
<hit index="6" value="1"/>
<hit index="7" value="1"/>
<hit index="8" value="1"/>
<hit index="9" value="1"/>
<hit index="10" value="2"/>
<hit index="11" value="1"/>
<hit index="12" value="1"/>
<hit index="13" value="1"/>
<hit index="15" value="1"/>
<hit index="16" value="1"/>
</hits>
<coverage domain="userortestcode" unit="block" covered="4" total="4" coveredRatio="1"/>
</method>
<chunk hits="1" offset="0000" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="1" offset="0001" domain="userortestcode"><source><![CDATA[this._masterViewController = (IController<IMasterView>)new MasterViewController(this);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="2" offset="000d" domain="userortestcode"><source><![CDATA[((IController<IMasterView>)_masterViewController).AddView(imv);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="001a" domain="userortestcode"><source><![CDATA[this._masterViewController.SetUp();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
        ]]></source>
</chunk>
<chunk hits="1" offset="0026" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[

        /// <summary>
        /// Property for Midichannels. The channels propogates from here to the rest of the controllers.
        /// </summary>
        public List<Channel> MidiChannels {
            get ]]></source>
</chunk>
<method name="get_MidiChannels" namespace="AutomaTones.Controller" type="AutomaTones.Controller.MainController" typeName="MainController" token="6000192" module="AutomaTones.exe"><hits><hit index="0" value="1"/>
<hit index="1" value="1"/>
</hits>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<chunk hits="1" offset="0000" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="1" offset="0001" domain="userortestcode"><source><![CDATA[return _midiChannels;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="1" offset="000a" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            set { _midiChannels = value; }
        }

        [PexMethod]
        private void SetupLaunchpad() ]]></source>
</chunk>
<method name="SetupLaunchpad" namespace="AutomaTones.Controller" type="AutomaTones.Controller.MainController" typeName="MainController" token="6000194" module="AutomaTones.exe"><hits><hit index="0" value="1"/>
<hit index="1" value="1"/>
<hit index="29" value="1"/>
</hits>
<coverage domain="userortestcode" unit="block" covered="1" total="7" coveredRatio="0.14285714285714285"/>
</method>
<chunk hits="1" offset="0000" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[              
            ]]></source>
</chunk>
<chunk hits="1" offset="0001" domain="userortestcode"><source><![CDATA[ConnectLaunchpad clp = new ConnectLaunchpad();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="0007" domain="userortestcode"><source><![CDATA[SenseLaunchpad slp = new SenseLaunchpad();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="000d" domain="userortestcode"><source><![CDATA[_computeLaunchpad = slp.ComputeLaunchpad;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="0019" domain="userortestcode"><source><![CDATA[_hardWareView = new LaunchPad();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="0024" domain="userortestcode"><source><![CDATA[ConnectLaunchpadToControllers();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="002b" domain="userortestcode"><source><![CDATA[((LaunchPad)_hardWareView).ClearGrid();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="003c" domain="userortestcode"><source><![CDATA[slp.StartSensing();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            
        ]]></source>
</chunk>
<chunk hits="0" offset="0043" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[

        private void ConnectLaunchpadToControllers() {
            foreach (CAViewController controller in _CAcontrollers)
            {
                if (LaunchpadConnected) {
                    _computeLaunchpad.LaunchpadEvent += controller.LaunchpadClicked;
                    _computeLaunchpad.StateButtonEvent += controller.StateButtonDown;
                    _computeLaunchpad.StateChangeEvent += controller.State;
                    _computeLaunchpad.OkButtonEvent += controller.Ok;
                    _computeLaunchpad.ClearButtonEvent += controller.ResetGrid;
                }
            }
        }

        /// <summary>
        /// Add channels to the system. Calling this method will make the 
        /// Maincontroller detect all available channels.
        /// </summary>
        private void AddChannels() ]]></source>
</chunk>
<method name="AddChannels" namespace="AutomaTones.Controller" type="AutomaTones.Controller.MainController" typeName="MainController" token="6000196" module="AutomaTones.exe"><hits><hit index="0" value="1"/>
<hit index="1" value="1"/>
<hit index="2" value="1"/>
<hit index="3" value="1"/>
<hit index="4" value="1"/>
<hit index="5" value="1"/>
<hit index="6" value="1"/>
<hit index="7" value="1"/>
<hit index="8" value="1"/>
<hit index="9" value="1"/>
<hit index="10" value="1"/>
</hits>
<coverage domain="userortestcode" unit="block" covered="5" total="5" coveredRatio="1"/>
</method>
<chunk hits="1" offset="0000" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="1" offset="0001" domain="userortestcode"><source><![CDATA[List<Channel> avalChannels = Enum.GetValues(typeof (Channel)).Cast<Channel>().ToList();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="1" offset="001b" domain="userortestcode"><source><![CDATA[_midiChannels = avalChannels;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
        ]]></source>
</chunk>
<chunk hits="2" offset="0022" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[

        /********************************************************************************
         * MasterViewController as an inner class so it can access the CaViewControllers
         ********************************************************************************/

       class MasterViewController : IController<IMasterView> {
           private IMasterView _view;
           ]]></source>
</chunk>
<method name=".ctor" namespace="AutomaTones.Controller" type="AutomaTones.Controller.MainController+MasterViewController" typeName="MainController+MasterViewController" token="6000199" module="AutomaTones.exe"><hits><hit index="0" value="1"/>
<hit index="1" value="1"/>
<hit index="2" value="1"/>
<hit index="3" value="1"/>
<hit index="4" value="1"/>
<hit index="5" value="1"/>
<hit index="6" value="1"/>
<hit index="7" value="1"/>
<hit index="9" value="1"/>
<hit index="10" value="1"/>
<hit index="11" value="1"/>
<hit index="12" value="1"/>
<hit index="14" value="1"/>
<hit index="15" value="1"/>
<hit index="17" value="1"/>
<hit index="18" value="1"/>
<hit index="19" value="1"/>
<hit index="20" value="1"/>
<hit index="21" value="1"/>
</hits>
<coverage domain="userortestcode" unit="block" covered="6" total="6" coveredRatio="1"/>
</method>
<chunk hits="1" offset="0000" domain="userortestcode"><source><![CDATA[private int _masterChannel = 16;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
           private ConnectVirtualMidi _vm;
           private MidiOut _mo;
   
           ]]></source>
</chunk>
<chunk hits="2" offset="0008" domain="userortestcode"><source><![CDATA[public MasterViewController(MainController m)]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="1" offset="000f" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
               ]]></source>
</chunk>
<chunk hits="1" offset="0010" domain="userortestcode"><source><![CDATA[this.MainController = m;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
               ]]></source>
</chunk>
<chunk hits="1" offset="0018" domain="userortestcode"><source><![CDATA[_vm = new ConnectVirtualMidi();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
               ]]></source>
</chunk>
<chunk hits="2" offset="0023" domain="userortestcode"><source><![CDATA[_mo = _mo = new MidiOut(Channel.Channel16, new BechTranslator());]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
           ]]></source>
</chunk>
<chunk hits="2" offset="003e" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
   
           /// <summary>
           /// Add the IMasterView to this controller.
           /// </summary>
           /// <param name="v"></param>
           public void AddView(IMasterView v) ]]></source>
</chunk>
<method name="AddView" namespace="AutomaTones.Controller" type="AutomaTones.Controller.MainController+MasterViewController" typeName="MainController+MasterViewController" token="600019a" module="AutomaTones.exe"><hits><hit index="0" value="1"/>
<hit index="1" value="1"/>
<hit index="2" value="1"/>
</hits>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<chunk hits="1" offset="0000" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
               Contract.Requires(v != null);
               Contract.Requires(this.MainController != null);
               Contract.Ensures(this._view == v);
               ]]></source>
</chunk>
<chunk hits="1" offset="0001" domain="userortestcode"><source><![CDATA[_view = v;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
           ]]></source>
</chunk>
<chunk hits="2" offset="0008" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
           [PexMethod]
           public void SetUp() ]]></source>
</chunk>
<method name="SetUp" namespace="AutomaTones.Controller" type="AutomaTones.Controller.MainController+MasterViewController" typeName="MainController+MasterViewController" token="600019b" module="AutomaTones.exe"><hits><hit index="0" value="1"/>
<hit index="1" value="1"/>
<hit index="2" value="1"/>
<hit index="76" value="1"/>
</hits>
<coverage domain="userortestcode" unit="block" covered="1" total="21" coveredRatio="0.047619047619047616"/>
</method>
<chunk hits="1" offset="0000" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
               ]]></source>
</chunk>
<chunk hits="1" offset="0001" domain="userortestcode"><source><![CDATA[_view.OnForwardButtonClickEvent += Forward;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
               ]]></source>
</chunk>
<chunk hits="0" offset="0029" domain="userortestcode"><source><![CDATA[_view.OnPauseButtonClickEvent += Pause;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
               ]]></source>
</chunk>
<chunk hits="0" offset="0051" domain="userortestcode"><source><![CDATA[_view.OnPlayButtonClickEvent += Play;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
               ]]></source>
</chunk>
<chunk hits="0" offset="0079" domain="userortestcode"><source><![CDATA[_view.OnRewindButtonClickEvent += Rewind;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
               ]]></source>
</chunk>
<chunk hits="0" offset="00a1" domain="userortestcode"><source><![CDATA[_view.OnVolumeChangeEvent += VolumeChanged;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
           ]]></source>
</chunk>
<chunk hits="0" offset="00c9" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[

           /// <summary>
           /// Send a Forward message to all CA
           /// </summary>
           [PexMethod]
           public void Forward() {
               lock (MainController._CAcontrollers){
                   foreach (CAViewController cac in MainController._CAcontrollers){
                       cac.Forward();
                   }
               }
           }
   
           /// <summary>
           /// Send pause message to all CA
           /// </summary>
           [PexMethod]
           public void Pause(){
               lock (MainController._CAcontrollers) {
                   foreach (CAViewController cac in MainController._CAcontrollers) {
                       cac.Pause();
                   }
               }
           }
   
           /// <summary>
           /// Send Play to all CA
           /// </summary>
           [PexMethod]       
           public void Play() {
               lock (MainController._CAcontrollers) {
                   foreach (CAViewController cac in MainController._CAcontrollers) {
                       cac.PlaySentFromUser();
                   }
               }
           }
   
           /// <summary>
           /// Send Rewind to all CA
           /// </summary>
           [PexMethod]
           public void Rewind() {
               lock (MainController._CAcontrollers) {
                   foreach (CAViewController cac in MainController._CAcontrollers) {
                       cac.Rewind();
                   }
               }
           }
   
           /// <summary>
           /// Turn down the volume. It directs the call directly to the midi out, thus not affecting the CA.
           /// </summary>
           /// <param name="volume"></param>
           [PexMethod]      
           public void VolumeChanged(int volume) {
                _mo.SetVolume(volume);
           }

           /// <summary>
           /// As is, evolve is omitted for this implementation, this might be useful for an some extende use of CA
           /// </summary>
           public void Evolve(){}

           private MainController MainController { get; set; }
   
           public bool IsPLaying { get; set; }
   
           public int Volume { get; set; }

           public List<Channel> Channels { get; set; }
           [ContractInvariantMethod]
           private void Invariant() {
               Contract.Invariant(0 <= Volume && Volume <= 100);
           }
       }
   }
}
]]></source>
</chunk>
</document>
<document src="C:\Users\Anders\Documents\automatones\Visual Studio\AutomaTones\AutomaTones\View\GUI View\CAControl.cs" renderPrefix="s6"><chunk hits="-1" domain="unknown"><source><![CDATA[/**
 * An implementation of a UI that uses the IVIEW interface so that it can register
 * itself with a CAViewController. Some methods are just forwarding the events
 * that are triggered by the System.Windows.Forms.Control events and torher adjust to the signature
 * of the methods specified by the IVIEW interface.
 * 
 * A 'CAControl' is not to be confused with a type of 'IController'. A CAControl is a .net control. 
 * 
 * Author: Anders Høst | ahkj@itu.dk
 * Date: 05 Dec 2010
 */

using System;
using System.Reflection;
using System.Collections.Generic;
using System.Drawing;
using System.Runtime.CompilerServices;
using System.Windows.Forms;
using AutomaTones.Model.Automaton_Model;
using AutomaTones.Model.Automaton_Model.RuleLib;
using AutomaTones.Model.MIDI.Mappers;
using AutomaTones.Model.Tools;
using Midi;

namespace AutomaTones.View.GUI_View {
    public partial class CaControl : UserControl {
        private const int offSetX = 5;
        private const int offSetY = 5;
        private const int _cellMargin = 1;
        ]]></source>
</chunk>
<method name=".ctor" namespace="AutomaTones.View.GUI_View" type="AutomaTones.View.GUI_View.CaControl" typeName="CaControl" token="6000036" module="AutomaTones.exe"><hits><hit index="0" value="1"/>
<hit index="1" value="1"/>
<hit index="2" value="1"/>
<hit index="3" value="1"/>
<hit index="4" value="1"/>
<hit index="5" value="1"/>
<hit index="6" value="1"/>
<hit index="7" value="1"/>
<hit index="8" value="1"/>
<hit index="9" value="1"/>
<hit index="10" value="1"/>
<hit index="11" value="1"/>
</hits>
<coverage domain="userortestcode" unit="block" covered="2" total="26" coveredRatio="0.076923076923076927"/>
</method>
<chunk hits="1" offset="0000" domain="userortestcode"><source><![CDATA[private double _cellSize = 10;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
        ]]></source>
</chunk>
<chunk hits="2" offset="000f" domain="userortestcode"><source><![CDATA[private int _columns = 28;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
        ]]></source>
</chunk>
<chunk hits="2" offset="0017" domain="userortestcode"><source><![CDATA[private int _rows = 28;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
        private readonly Assembly _files;

        //Painting graphics
        private SolidBrush _sb;
        private Rectangle[,] _rect;

        ]]></source>
</chunk>
<chunk hits="2" offset="0026" domain="userortestcode"><source><![CDATA[public CaControl()]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="1" offset="002d" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="1" offset="002e" domain="userortestcode"><source><![CDATA[InitializeComponent();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            //Program.SetVisualStyles();

            // Gets all the embedded resources and collects them in this assembly.
            ]]></source>
</chunk>
<chunk hits="0" offset="0035" domain="userortestcode"><source><![CDATA[_files = Assembly.GetExecutingAssembly();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            
            //playButtonPic.Image = new Bitmap(PlayButton);
            ]]></source>
</chunk>
<chunk hits="0" offset="0040" domain="userortestcode"><source><![CDATA[playButtonPic.Image = new Bitmap(_files.GetManifestResourceStream("AutomaTones.Graphics.PlayButton.png"));]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="0061" domain="userortestcode"><source><![CDATA[pauseButtonPic.Image = new Bitmap(_files.GetManifestResourceStream("AutomaTones.Graphics.PauseButton.png"));]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="0082" domain="userortestcode"><source><![CDATA[FFpictureBox1.Image = new Bitmap(_files.GetManifestResourceStream("AutomaTones.Graphics.FastForward.png"));]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="00a3" domain="userortestcode"><source><![CDATA[BackwardspictureBox2.Image = new Bitmap(_files.GetManifestResourceStream("AutomaTones.Graphics.Backwards.png"));]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="00c4" domain="userortestcode"><source><![CDATA[soundIconPictureBox1.Image = new Bitmap(_files.GetManifestResourceStream("AutomaTones.Graphics.soundIcon.png"));]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="00e5" domain="userortestcode"><source><![CDATA[this.BackgroundImage = new Bitmap(_files.GetManifestResourceStream("AutomaTones.Graphics.BackgroundGreen1.png"));]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
           ]]></source>
</chunk>
<chunk hits="0" offset="0101" domain="userortestcode"><source><![CDATA[CustomGrid = new State[_columns, _rows];]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
           ]]></source>
</chunk>
<chunk hits="0" offset="0119" domain="userortestcode"><source><![CDATA[_sb = new SolidBrush(Color.Empty);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
           ]]></source>
</chunk>
<chunk hits="0" offset="0129" domain="userortestcode"><source><![CDATA[SetupPreferredGrid(CustomGrid);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
        ]]></source>
</chunk>
<chunk hits="0" offset="0136" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[

        /// <summary>
        /// Setup for painting grid graphics. Should be recall when a grid is resized.
        /// </summary>
        private void InitGraphics() {
            SetOptimalCellSize(_columns, _rows);
            _rect = new Rectangle[_columns,_rows];
            for (int i = 0; i < _columns; i++) {
                for (int j = 0; j < _columns; j++)
                {
                    _rect[i,j] = new Rectangle((int)(_cellMargin + (i * _cellSize) + offSetX),
                     (int)(_cellMargin + (j * _cellSize) + offSetY),
                     (int)_cellSize - _cellMargin,
                     (int)(_cellSize - _cellMargin));
                }
            }
         }

        public void Init() {
            InitGraphics();
            PaintBackground();
            ResetGrid();
        }

        /// <summary>
        /// A custom grid is used for mouse based interaction with the system.
        /// </summary>
        public State[,] CustomGrid { get; set; }

        /// <summary>
        /// Set a new grid with the desired dimensions. 
        /// </summary>
        /// <param name="dimension"></param>
        /// <param name="rows"></param>
        public void SetGridDimension(int columns, int rows) {
            this._columns = columns;
            this._rows = columns;
            InitGraphics();
            PaintBackground();
            for (int i = 0; i < columns; i++)
                for (int j = 0; j < rows; j++)
                    SetCell(i, j, new State());
        }

        /// <summary>
        /// Set a single cell on the grid displayed. The method reacts to this if the cell is in the range of this
        /// particualr implementation of a GUi. It's assumed that the controller handles system logic of what cells can be 
        /// changed when. 
        /// </summary>
        [MethodImpl(MethodImplOptions.Synchronized)]
        public void SetCell(int xPos, int yPos, State cell)
        {
            Graphics graphics = gridPanel.CreateGraphics();
                graphics = gridPanel.CreateGraphics();
                //check if the coordinates are inside the grid
                if (_columns < xPos || _rows < yPos)
                    return;

                switch (cell.CurrentState)
                {
                    case 0:
                        {
                            _sb.Color = Color.FromArgb(255, Color.White);
                            graphics.FillRectangle(_sb, _rect[xPos, yPos]);
                        }
                        break;
                    case 1:
                        {
                            _sb.Color = Color.FromArgb(255, Color.Red);
                            graphics.FillRectangle(_sb, _rect[xPos, yPos]);
                        }
                        break;
                    case 2:
                        {
                            _sb.Color = Color.FromArgb(255, Color.White);
                            graphics.FillRectangle(_sb, _rect[xPos, yPos]);
                            _sb.Color = Color.FromArgb(120, Color.Red);
                            graphics.FillRectangle(_sb, _rect[xPos, yPos]);
                        }
                        break;
                    case 3:
                        {
                            _sb.Color = Color.FromArgb(255, Color.Orange);
                            graphics.FillRectangle(_sb, _rect[xPos, yPos]);
                        }
                        break;
                    case 4:
                        {
                            _sb.Color = Color.FromArgb(255, Color.White);
                            graphics.FillRectangle(_sb, _rect[xPos, yPos]);
                            _sb.Color = Color.FromArgb(120, Color.Orange);
                            graphics.FillRectangle(_sb, _rect[xPos, yPos]);
                        }
                        break;
                    case 5:
                        {
                            _sb.Color = Color.FromArgb(255, Color.Green);
                            graphics.FillRectangle(_sb, _rect[xPos, yPos]);
                        }
                        break;
                    case 6:
                        {
                            _sb.Color = Color.FromArgb(255, Color.White);
                            graphics.FillRectangle(_sb, _rect[xPos, yPos]);
                            _sb.Color = Color.FromArgb(120, Color.Green);
                            graphics.FillRectangle(_sb, _rect[xPos, yPos]);
                        }
                        break;
                    default:
                        {
                            _sb.Color = Color.FromArgb(255, Color.White);
                            graphics.FillRectangle(_sb, _rect[xPos, yPos]);
                            _sb.Color = Color.FromArgb(120, Color.Black);
                            ;
                            graphics.FillRectangle(_sb, _rect[xPos, yPos]);
                        }
                        break;
                }
        }

        /// <summary>
        /// Mouse click on the grid panel. Based on the mouse click position
        /// it calculates the colum and rown that was chosen.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void GridPanelClick(object sender, MouseEventArgs e) {
            int mouseX = e.X - offSetX;
            int column = (int)(mouseX / (_cellSize));

            int mouseY = e.Y - offSetY;
            int row = (int)(mouseY / (_cellSize));

            if (e.Button == System.Windows.Forms.MouseButtons.Right) {
                ShowCaPatterns(e.X, e.Y, column,row);
                } else
                OnCellClickEvent.Invoke(column, row);
        }


        public void SetGrid(State[,] grid) {
            for (int i = 0; i < grid.GetLength(0); i++) {
                for (int j = 0; j < grid.GetLength(1); j++) {
                    SetCell(i, j, grid[i, j]);
                }
            }
        }

        public void ResetGrid(){
            _columns = CustomGrid.GetLength(0);
            _rows = CustomGrid.GetLength(1);
            SetOptimalCellSize(_columns, _rows);
            PaintBackground();
            SetGrid(CustomGrid);
        }

        /// <summary>
        /// Determines the best cell size so coulms and rows will fit on the panel. 
        /// </summary>
        /// <param name="columns"></param>
        /// <param name="rows"></param>
        private void SetOptimalCellSize(int columns, int rows) {
            if (gridPanel.Width / columns < gridPanel.Height / rows) {
                _cellSize = (gridPanel.Width / columns) - ((2*offSetX) / columns);
            } else {
                _cellSize = (gridPanel.Height / rows) - ((2*offSetX) / columns);
            }
        }

        /// <summary>
        /// Set up the preferred grid with a default state. It is reused for redrawing the gridpanel
        /// to this size and we don't want to rerun this algorithm everytime we do that. 
        /// </summary>
        /// <param name="grid"></param>
        private void SetupPreferredGrid(State[,] grid) {
            for (int i = 0; i < grid.GetLength(0); i++) {
                for (int j = 0; j < grid.GetLength(1); j++) {
                    grid[i, j] = new State();
                }
            }
        }


        private void PaintBackground(){
            Graphics g = gridPanel.CreateGraphics();
            g.FillRectangle(new SolidBrush(gridPanel.BackColor), 0, 0, gridPanel.Width, gridPanel.Height);
        }

        /// <summary>
        /// Diplay info and help messages sent from the system.
        /// </summary>
        /// <param name="message"></param>
        public void SystemMessage(string message) {
            infoLabel.Text = message.ToString();
        }

        /// <summary>
        /// Puts a small name png on UI. To extends this method add .png to the graphics folder with
        /// the signature ca'thisControlNumber'.png
        /// </summary>
        /// <param name="thisControlNumber"></param>
        public void SetName(int thisControlNumber) {
            CAnamePictureBox1.Image = new Bitmap(_files.GetManifestResourceStream("AutomaTones.Graphics.Ca"+thisControlNumber+".png"));
        }

        /// <summary>
        /// Set the different input modes to a combobox.
        /// </summary>
        /// <param name="list"></param>
        public void DisplayInputModes(List<InputMode> list){
            foreach (InputMode im in list){
                if (!inputModeComboBox.Items.Contains(im))
                    inputModeComboBox.Items.Add(im);
            }
        }

        public void DisplayMappers(List<Mapper> list){
            foreach (Mapper m in list) {
                if (!MapperComboBox.Items.Contains(m))
                    MapperComboBox.Items.Add(m);
            }
        }

        /// <summary>
        /// Set the list output channels to a combobox
        /// </summary>
        /// <param name="channels"></param>
        public void DisplayChannels(List<Channel> list) {
            foreach (Channel ch in list) {
                if (!ChannelComboBox.Items.Contains(ch))
                    ChannelComboBox.Items.Add(ch);
            }
        }

        /// <summary>
        /// Sets the list of choosable CARules to a combobox
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        public void DisplayCATypes(List<CAType> list){
            foreach (CAType caType in list) {
                if (!CATypeComboBox.Items.Contains(caType))
                    CATypeComboBox.Items.Add(caType);
            }
        }

        //Ok button was clicked. Used for custom user input control
        private void okButton_Click(object sender, EventArgs e) {
            OnOkButtonClickEvent.Invoke();
        }

        //The play button was clicked
        private void playButtonPic_Click(object sender, EventArgs e) {
            OnPlayButtonClickEvent.Invoke();
        }

        //This method is called when the volume changes on the 
        //scrolle bar. It delegates this volue.
        private void volumeScrollBar_CursorChanged(object sender, EventArgs e) {
            HScrollBar hsc = (HScrollBar)sender;
            OnVolumeChangeEvent.Invoke(hsc.Value);
        }

        //Load button was clicked on scrren, delegate this.
        private void LoadButton_Click(object sender, EventArgs e) {
            OpenFileDialog ofg = new OpenFileDialog();
            ofg.Filter = "Text files (*.*)|*.*|All files (*.*)|*.*";
            if (ofg.ShowDialog() == DialogResult.OK)
               OnLoadButtonClickEvent.Invoke(ofg.FileName);
        }

        private void PauseButton_Click(object sender, EventArgs e) {
            OnPauseButtonClickEvent.Invoke();
        }

        /// <summary>
        /// Displays a usercontrol for setting a ca pattern on the grid.
        /// </summary>
        /// <param name="mouseX"></param>
        /// <param name="y"></param>
        private void ShowCaPatterns(int mouseX, int mouseY, int column, int rows)
        {
             UserControl caList = new UserControl();
            if(mouseX + caList.Width > gridPanel.Width)
                caList.Location = new Point(gridPanel.Width - caList.Width, mouseY);
            else if(mouseY + 30 > gridPanel.Height)
                caList.Location = new Point(mouseX,gridPanel.Height-30);
            else if(mouseX - (caList.Width / 2) < 0)
                caList.Location = new Point(30, mouseY - 3);
            else
                caList.Location = new Point(mouseX - (caList.Width / 2), mouseY -3);
            ComboBox cb = new ComboBox();
            bool entered = false;
            cb.Text = "Select pattern...";
            cb.SelectedItem = Patterns[0];
            foreach (GameOfLife.GofPattern ca in this.Patterns)
                    cb.Items.Add(ca);

            //anonymous listener for item changed
            cb.SelectedIndexChanged += (s1, e1) => {
                OnApplyCaPatternEvent(((GameOfLife.GofPattern) ((ComboBox) s1).SelectedItem), column, rows);
                this.Controls.Remove(caList);
                caList.Dispose();
            };

            cb.MouseEnter += (s1, e1) => {
                entered = true;
            };

            cb.MouseLeave += (s1, e1) => {
                if (entered)
                {
                    this.Controls.Remove(caList);
                    caList.Dispose();
                    this.Update();
                    SetGridDimension(_columns, _rows);
                }


            };

            caList.Height = cb.Height;
            caList.Width = cb.Width;
            caList.Controls.Add(cb);
            this.gridPanel.Controls.Add(caList);
        }

        //Save button was clicked on sceen, get a name for the CA and delegate this. Basically
        // a UserControl that takes use of this.Usercontrol
        private void saveButton_Click(object sender, EventArgs e)
        {
            GridResizer gr = new GridResizer(ResizeGrid);
            UserControl inputForm = new UserControl();
            inputForm.Location = new Point(this.saveButton.Location.X, saveButton.Location.Y);

            //for name input
            TextBox tb = new TextBox();
            tb.Width = this.inputModeComboBox.Width;
            tb.Height = 25;
            inputForm.Height = tb.Height;
            inputForm.Width = tb.Width;

            //save button
            Button saveBtn = new Button();
            saveBtn.Text = "Save";
            saveBtn.Location = new Point(0,tb.Height);
            saveBtn.UseVisualStyleBackColor = true;

            inputForm.Height = tb.Height + saveBtn.Height; //reasonable height

            //cancel button
            Button cancelBtn = new Button();
            cancelBtn.Text = "Cancel";
            cancelBtn.Location = new Point(saveBtn.Width, tb.Height);
            cancelBtn.UseVisualStyleBackColor = true;
            inputForm.Width = tb.Width;
            inputForm.Controls.Add(tb);
            inputForm.Controls.Add(saveBtn);
            inputForm.Controls.Add(cancelBtn);

            //some anonymous button listeners
            saveBtn.Click += (s1, e1) => {
                if (tb.Text.Length != 0) 
                    OnSaveButtonClickEvent.Invoke(tb.Text);
                this.Controls.Remove(inputForm);
                inputForm.Dispose();
                this.saveButton.Show();
                this.LoadButton.Show();
                this.Invoke(gr, 8, 2);
            };

            cancelBtn.Click += (s1, e1) => {
                this.Controls.Remove(inputForm);
                inputForm.Dispose();
                this.gridPanel.Show();
                this.saveButton.Show();
                this.LoadButton.Show();
                this.Invoke(gr, 8, 2);
                this.SetGridDimension(_columns, _rows);
            };

            this.Invoke(gr,8,-2); // all ready, size the grid down
            this.saveButton.Hide();
            this.LoadButton.Hide();
            this.Controls.Add(inputForm);
        }

        //Used for save button graphics due to threads
        public delegate void GridResizer(int pixels, int byPixel);

        private void ResizeGrid(int times, int byPixel) {
            int count = 0;
            while (count < times) {
                ChangeGrid(byPixel);
                count++;
            }
            SetGridDimension(_columns, _rows);
        }

        private void ChangeGrid(int i) {
            gridPanel.Width += i;
            gridPanel.Height += i;
            gridPanel.Location = new Point(gridPanel.Location.X + ((i / 2) * -1), gridPanel.Location.Y + (i * -1));
        }

        public void DisplayChannel(Channel channel) {
            ChannelComboBox.SelectedItem = channel;
        }

        public void SetVolume(int Volume){
            this.VolumeHscrollbar.Value = Volume;
        }

        private void channelComboBoxChanged(object sender, EventArgs e) {
            ComboBox cb = (ComboBox)sender;
            Channel selectedChannel = (Channel)cb.SelectedItem;
            OnChannelChangeEvent.Invoke(selectedChannel);
        }

        private void CaComboBoxChanged(object sender, EventArgs e) {
            ComboBox cb = (ComboBox)sender;
            CAType selectedType = (CAType)cb.SelectedItem;
            OnCATypeChangeEvent.Invoke(selectedType);
        }

        private void MapperChanged(object sender, EventArgs e)
        {
            ComboBox cb = (ComboBox) sender;
            Mapper m = (Mapper) cb.SelectedItem;
            OnMapperChangeEvent.Invoke(m);
        }

        private void InputModeChanged(object sender, EventArgs e) {
            ComboBox cb = (ComboBox)sender;
            InputMode inputMode = (InputMode)cb.SelectedItem;
            OnInputModeChangeEvent.Invoke(inputMode);
        }

        //Also called on MouseDown
        private void RewindButtonClick(object sender, EventArgs e) {
            OnRewindButtonClickEvent.Invoke();
        }

        //Also called on MouseDown
        private void ForwardButtonClick(object sender, EventArgs e) {
            OnForwardButtonClickEvent.Invoke();
        }

        /*******************************************************************
         *          Trivial - delegate methods implemented from IView
         * *****************************************************************/

        public List<GameOfLife.GofPattern> Patterns { get; set; }

        public Action<GameOfLife.GofPattern, int, int> OnApplyCaPatternEvent { get; set; }

        public Action OnOkButtonClickEvent { get; set; }

        public Action OnPlayButtonClickEvent { get; set; }

        public Action OnRewindButtonClickEvent { get; set; }

        public Action OnForwardButtonClickEvent { get; set; }

        public Action OnPauseButtonClickEvent { get; set; }

        public Action<int, int> OnCellClickEvent { get; set; }

        public Action<int> OnVolumeChangeEvent { get; set; }

        public Action<Channel> OnChannelChangeEvent { get; set; }

        public Action<InputMode> OnInputModeChangeEvent { get; set; }

        public Action<CAType> OnCATypeChangeEvent { get; set; }

        public Action<Mapper> OnMapperChangeEvent { get; set; }

        public Action<String> OnSaveButtonClickEvent { get; set; }

        public Action<String> OnLoadButtonClickEvent { get; set; }
    }
}
]]></source>
</chunk>
</document>
<document src="C:\Users\Anders\Documents\automatones\Visual Studio\AutomaTones\AutomaTones\View\GUI View\CAControl.Designer.cs" renderPrefix="s7"><chunk hits="-1" domain="unknown"><source><![CDATA[namespace AutomaTones.View.GUI_View
{
	partial class CaControl : IView
	{
		/// <summary> 
		/// Required designer variable.
		/// </summary>
		]]></source>
</chunk>
<chunk hits="2" offset="001f" domain="userortestcode"><source><![CDATA[private System.ComponentModel.IContainer components = null;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[

		/// <summary> 
		/// Clean up any resources being used.
		/// </summary>
		/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
		protected override void Dispose(bool disposing)
		{
			if (disposing && (components != null))
			{
				components.Dispose();
			}
			base.Dispose(disposing);
		}

		#region Component Designer generated code

		/// <summary> 
		/// Required method for Designer support - do not modify 
		/// the contents of this method with the code editor.
		/// </summary>
		private void InitializeComponent()
		]]></source>
</chunk>
<method name="InitializeComponent" namespace="AutomaTones.View.GUI_View" type="AutomaTones.View.GUI_View.CaControl" typeName="CaControl" token="6000079" module="AutomaTones.exe"><hits><hit index="0" value="1"/>
<hit index="1" value="1"/>
<hit index="3" value="1"/>
<hit index="4" value="1"/>
<hit index="5" value="1"/>
<hit index="6" value="1"/>
<hit index="8" value="1"/>
<hit index="9" value="1"/>
<hit index="10" value="1"/>
<hit index="11" value="1"/>
<hit index="13" value="1"/>
<hit index="14" value="1"/>
<hit index="15" value="1"/>
<hit index="16" value="1"/>
<hit index="18" value="1"/>
<hit index="19" value="1"/>
<hit index="20" value="1"/>
<hit index="21" value="1"/>
<hit index="23" value="1"/>
<hit index="24" value="1"/>
<hit index="25" value="1"/>
<hit index="26" value="1"/>
<hit index="28" value="1"/>
<hit index="29" value="1"/>
<hit index="30" value="1"/>
<hit index="31" value="1"/>
<hit index="33" value="1"/>
<hit index="34" value="1"/>
<hit index="35" value="1"/>
<hit index="36" value="1"/>
<hit index="38" value="1"/>
<hit index="39" value="1"/>
<hit index="40" value="1"/>
<hit index="41" value="1"/>
<hit index="43" value="1"/>
<hit index="44" value="1"/>
<hit index="45" value="1"/>
<hit index="46" value="1"/>
<hit index="48" value="1"/>
<hit index="49" value="1"/>
<hit index="50" value="1"/>
<hit index="51" value="1"/>
<hit index="53" value="1"/>
<hit index="54" value="1"/>
<hit index="55" value="1"/>
<hit index="56" value="1"/>
<hit index="58" value="1"/>
<hit index="59" value="1"/>
<hit index="60" value="1"/>
<hit index="61" value="1"/>
<hit index="63" value="1"/>
<hit index="64" value="1"/>
<hit index="65" value="1"/>
<hit index="66" value="1"/>
<hit index="68" value="1"/>
<hit index="69" value="1"/>
<hit index="70" value="1"/>
<hit index="71" value="1"/>
<hit index="73" value="1"/>
<hit index="74" value="1"/>
<hit index="75" value="1"/>
<hit index="76" value="1"/>
<hit index="78" value="1"/>
<hit index="79" value="1"/>
<hit index="80" value="1"/>
<hit index="81" value="1"/>
<hit index="82" value="1"/>
<hit index="83" value="1"/>
<hit index="84" value="1"/>
<hit index="85" value="2"/>
<hit index="86" value="1"/>
<hit index="87" value="1"/>
<hit index="88" value="1"/>
<hit index="89" value="1"/>
<hit index="90" value="2"/>
<hit index="91" value="1"/>
<hit index="92" value="1"/>
<hit index="93" value="1"/>
<hit index="94" value="1"/>
<hit index="95" value="2"/>
<hit index="96" value="1"/>
<hit index="97" value="1"/>
<hit index="98" value="1"/>
<hit index="99" value="1"/>
<hit index="100" value="2"/>
<hit index="101" value="1"/>
<hit index="102" value="1"/>
<hit index="103" value="1"/>
<hit index="104" value="1"/>
<hit index="105" value="2"/>
<hit index="106" value="1"/>
<hit index="107" value="1"/>
<hit index="108" value="1"/>
<hit index="109" value="1"/>
<hit index="110" value="2"/>
<hit index="111" value="1"/>
<hit index="112" value="1"/>
<hit index="113" value="1"/>
<hit index="114" value="1"/>
<hit index="115" value="1"/>
<hit index="116" value="1"/>
<hit index="117" value="1"/>
<hit index="118" value="1"/>
<hit index="119" value="2"/>
<hit index="120" value="1"/>
<hit index="121" value="1"/>
<hit index="123" value="1"/>
<hit index="124" value="1"/>
<hit index="125" value="1"/>
<hit index="126" value="1"/>
<hit index="127" value="2"/>
<hit index="128" value="1"/>
<hit index="129" value="1"/>
<hit index="130" value="1"/>
<hit index="131" value="1"/>
<hit index="132" value="2"/>
<hit index="133" value="1"/>
<hit index="134" value="1"/>
<hit index="136" value="1"/>
<hit index="137" value="1"/>
<hit index="138" value="1"/>
<hit index="139" value="1"/>
<hit index="140" value="2"/>
<hit index="141" value="1"/>
<hit index="142" value="1"/>
<hit index="143" value="1"/>
<hit index="144" value="1"/>
<hit index="145" value="2"/>
<hit index="146" value="1"/>
<hit index="147" value="1"/>
<hit index="149" value="1"/>
<hit index="150" value="1"/>
<hit index="151" value="1"/>
<hit index="152" value="1"/>
<hit index="153" value="2"/>
<hit index="154" value="1"/>
<hit index="155" value="1"/>
<hit index="156" value="1"/>
<hit index="157" value="1"/>
<hit index="158" value="2"/>
<hit index="159" value="1"/>
<hit index="160" value="1"/>
<hit index="162" value="1"/>
<hit index="163" value="1"/>
<hit index="164" value="1"/>
<hit index="165" value="1"/>
<hit index="166" value="2"/>
<hit index="167" value="1"/>
<hit index="168" value="1"/>
<hit index="169" value="1"/>
<hit index="170" value="1"/>
<hit index="171" value="2"/>
<hit index="172" value="1"/>
<hit index="173" value="1"/>
<hit index="175" value="1"/>
<hit index="176" value="1"/>
<hit index="177" value="1"/>
<hit index="178" value="1"/>
<hit index="179" value="2"/>
<hit index="180" value="1"/>
<hit index="181" value="1"/>
<hit index="182" value="1"/>
<hit index="183" value="1"/>
<hit index="184" value="2"/>
<hit index="185" value="1"/>
<hit index="186" value="1"/>
<hit index="187" value="1"/>
<hit index="188" value="1"/>
<hit index="189" value="2"/>
<hit index="190" value="1"/>
<hit index="191" value="1"/>
<hit index="193" value="1"/>
<hit index="194" value="1"/>
<hit index="195" value="1"/>
<hit index="196" value="1"/>
<hit index="197" value="2"/>
<hit index="198" value="1"/>
<hit index="199" value="1"/>
<hit index="200" value="1"/>
<hit index="201" value="1"/>
<hit index="202" value="2"/>
<hit index="203" value="1"/>
<hit index="204" value="1"/>
<hit index="206" value="1"/>
<hit index="207" value="1"/>
<hit index="208" value="1"/>
<hit index="209" value="1"/>
<hit index="210" value="2"/>
<hit index="211" value="1"/>
<hit index="212" value="1"/>
<hit index="213" value="1"/>
<hit index="214" value="1"/>
<hit index="215" value="2"/>
<hit index="216" value="1"/>
<hit index="217" value="1"/>
<hit index="219" value="1"/>
<hit index="220" value="1"/>
<hit index="221" value="1"/>
<hit index="222" value="1"/>
<hit index="223" value="2"/>
<hit index="224" value="1"/>
<hit index="225" value="1"/>
<hit index="226" value="1"/>
<hit index="227" value="1"/>
<hit index="228" value="2"/>
<hit index="229" value="1"/>
<hit index="230" value="1"/>
<hit index="231" value="1"/>
<hit index="232" value="1"/>
<hit index="233" value="2"/>
<hit index="234" value="1"/>
<hit index="235" value="1"/>
<hit index="237" value="1"/>
<hit index="238" value="1"/>
<hit index="239" value="1"/>
<hit index="240" value="1"/>
<hit index="241" value="2"/>
<hit index="242" value="1"/>
<hit index="243" value="1"/>
<hit index="244" value="1"/>
<hit index="245" value="1"/>
<hit index="246" value="2"/>
<hit index="247" value="1"/>
<hit index="248" value="1"/>
<hit index="250" value="1"/>
<hit index="251" value="1"/>
<hit index="252" value="1"/>
<hit index="253" value="1"/>
<hit index="254" value="2"/>
<hit index="255" value="1"/>
<hit index="256" value="1"/>
<hit index="257" value="1"/>
<hit index="258" value="1"/>
<hit index="259" value="2"/>
<hit index="260" value="1"/>
<hit index="261" value="1"/>
<hit index="263" value="1"/>
<hit index="264" value="1"/>
<hit index="265" value="1"/>
<hit index="266" value="1"/>
<hit index="267" value="2"/>
<hit index="268" value="1"/>
<hit index="269" value="1"/>
<hit index="270" value="1"/>
<hit index="271" value="1"/>
<hit index="272" value="2"/>
<hit index="273" value="1"/>
<hit index="274" value="1"/>
<hit index="275" value="1"/>
<hit index="276" value="1"/>
<hit index="277" value="2"/>
<hit index="278" value="1"/>
<hit index="279" value="1"/>
<hit index="281" value="1"/>
<hit index="282" value="1"/>
<hit index="283" value="1"/>
<hit index="284" value="1"/>
<hit index="285" value="2"/>
<hit index="286" value="1"/>
<hit index="287" value="1"/>
<hit index="288" value="1"/>
<hit index="289" value="1"/>
<hit index="290" value="2"/>
<hit index="291" value="1"/>
<hit index="292" value="1"/>
<hit index="294" value="1"/>
<hit index="295" value="1"/>
<hit index="296" value="1"/>
<hit index="297" value="1"/>
<hit index="298" value="2"/>
<hit index="299" value="1"/>
<hit index="300" value="1"/>
<hit index="301" value="1"/>
<hit index="302" value="1"/>
<hit index="303" value="2"/>
<hit index="304" value="1"/>
<hit index="305" value="1"/>
<hit index="307" value="1"/>
<hit index="308" value="1"/>
<hit index="309" value="1"/>
<hit index="310" value="1"/>
<hit index="311" value="2"/>
<hit index="312" value="1"/>
<hit index="313" value="1"/>
<hit index="314" value="1"/>
<hit index="315" value="1"/>
<hit index="316" value="2"/>
<hit index="317" value="1"/>
<hit index="318" value="1"/>
<hit index="319" value="1"/>
<hit index="320" value="1"/>
<hit index="321" value="2"/>
<hit index="322" value="1"/>
<hit index="323" value="1"/>
<hit index="325" value="1"/>
<hit index="326" value="1"/>
<hit index="327" value="1"/>
<hit index="328" value="1"/>
<hit index="329" value="2"/>
<hit index="330" value="1"/>
<hit index="331" value="1"/>
<hit index="332" value="1"/>
<hit index="333" value="1"/>
<hit index="334" value="2"/>
<hit index="335" value="1"/>
<hit index="336" value="1"/>
<hit index="338" value="1"/>
<hit index="339" value="1"/>
<hit index="340" value="1"/>
<hit index="341" value="1"/>
<hit index="342" value="2"/>
<hit index="343" value="1"/>
<hit index="344" value="1"/>
<hit index="345" value="1"/>
<hit index="346" value="1"/>
<hit index="347" value="2"/>
<hit index="348" value="1"/>
<hit index="349" value="1"/>
<hit index="351" value="1"/>
<hit index="352" value="1"/>
<hit index="353" value="1"/>
<hit index="354" value="1"/>
<hit index="355" value="2"/>
<hit index="356" value="1"/>
<hit index="357" value="1"/>
<hit index="358" value="1"/>
<hit index="359" value="1"/>
<hit index="360" value="2"/>
<hit index="361" value="1"/>
<hit index="362" value="1"/>
<hit index="363" value="1"/>
<hit index="364" value="1"/>
<hit index="365" value="2"/>
<hit index="366" value="1"/>
<hit index="367" value="1"/>
<hit index="369" value="1"/>
<hit index="370" value="1"/>
<hit index="371" value="1"/>
<hit index="372" value="1"/>
<hit index="373" value="2"/>
<hit index="374" value="1"/>
<hit index="375" value="1"/>
<hit index="376" value="1"/>
<hit index="377" value="1"/>
<hit index="378" value="1"/>
<hit index="379" value="1"/>
<hit index="380" value="2"/>
<hit index="381" value="1"/>
<hit index="382" value="1"/>
<hit index="384" value="1"/>
<hit index="385" value="1"/>
<hit index="386" value="1"/>
<hit index="387" value="1"/>
<hit index="388" value="2"/>
<hit index="389" value="1"/>
<hit index="390" value="1"/>
<hit index="391" value="1"/>
<hit index="392" value="1"/>
<hit index="393" value="2"/>
<hit index="394" value="1"/>
<hit index="395" value="1"/>
<hit index="397" value="1"/>
<hit index="398" value="1"/>
<hit index="399" value="1"/>
<hit index="400" value="1"/>
<hit index="401" value="2"/>
<hit index="402" value="1"/>
<hit index="403" value="1"/>
<hit index="404" value="1"/>
<hit index="405" value="1"/>
<hit index="406" value="2"/>
<hit index="407" value="1"/>
<hit index="408" value="1"/>
<hit index="409" value="1"/>
<hit index="410" value="1"/>
<hit index="411" value="2"/>
<hit index="412" value="1"/>
<hit index="413" value="1"/>
<hit index="415" value="1"/>
<hit index="416" value="1"/>
<hit index="417" value="1"/>
<hit index="418" value="1"/>
<hit index="419" value="2"/>
<hit index="420" value="1"/>
<hit index="421" value="1"/>
<hit index="422" value="1"/>
<hit index="423" value="1"/>
<hit index="424" value="1"/>
<hit index="425" value="1"/>
<hit index="426" value="2"/>
<hit index="427" value="1"/>
<hit index="428" value="1"/>
<hit index="430" value="1"/>
<hit index="431" value="1"/>
<hit index="432" value="1"/>
<hit index="433" value="1"/>
<hit index="434" value="2"/>
<hit index="435" value="1"/>
<hit index="436" value="1"/>
<hit index="437" value="1"/>
<hit index="438" value="1"/>
<hit index="439" value="2"/>
<hit index="440" value="1"/>
<hit index="441" value="1"/>
<hit index="443" value="1"/>
<hit index="444" value="1"/>
<hit index="445" value="1"/>
<hit index="446" value="1"/>
<hit index="447" value="2"/>
<hit index="448" value="1"/>
<hit index="449" value="1"/>
<hit index="450" value="1"/>
<hit index="451" value="1"/>
<hit index="452" value="2"/>
<hit index="453" value="1"/>
<hit index="454" value="1"/>
<hit index="455" value="1"/>
<hit index="456" value="1"/>
<hit index="457" value="2"/>
<hit index="458" value="1"/>
<hit index="459" value="1"/>
<hit index="461" value="1"/>
<hit index="462" value="1"/>
<hit index="463" value="1"/>
<hit index="464" value="1"/>
<hit index="465" value="2"/>
<hit index="466" value="1"/>
<hit index="467" value="1"/>
<hit index="468" value="1"/>
<hit index="469" value="1"/>
<hit index="470" value="1"/>
<hit index="471" value="1"/>
<hit index="472" value="2"/>
<hit index="473" value="1"/>
<hit index="474" value="1"/>
<hit index="476" value="1"/>
<hit index="477" value="1"/>
<hit index="478" value="1"/>
<hit index="479" value="1"/>
<hit index="480" value="2"/>
<hit index="481" value="1"/>
<hit index="482" value="1"/>
<hit index="483" value="1"/>
<hit index="484" value="1"/>
<hit index="485" value="2"/>
<hit index="486" value="1"/>
<hit index="487" value="1"/>
<hit index="489" value="1"/>
<hit index="490" value="1"/>
<hit index="491" value="1"/>
<hit index="492" value="1"/>
<hit index="493" value="2"/>
<hit index="494" value="1"/>
<hit index="495" value="1"/>
<hit index="496" value="1"/>
<hit index="497" value="1"/>
<hit index="498" value="2"/>
<hit index="499" value="1"/>
<hit index="500" value="1"/>
<hit index="501" value="1"/>
<hit index="502" value="1"/>
<hit index="503" value="2"/>
<hit index="504" value="1"/>
<hit index="505" value="1"/>
<hit index="507" value="1"/>
<hit index="508" value="1"/>
<hit index="509" value="1"/>
<hit index="510" value="1"/>
<hit index="511" value="2"/>
<hit index="512" value="1"/>
<hit index="513" value="1"/>
<hit index="514" value="1"/>
<hit index="515" value="1"/>
<hit index="516" value="1"/>
<hit index="517" value="1"/>
<hit index="518" value="2"/>
<hit index="519" value="1"/>
<hit index="520" value="1"/>
<hit index="522" value="1"/>
<hit index="523" value="1"/>
<hit index="524" value="1"/>
<hit index="525" value="1"/>
<hit index="526" value="2"/>
<hit index="527" value="1"/>
<hit index="528" value="1"/>
<hit index="529" value="1"/>
<hit index="530" value="1"/>
<hit index="531" value="2"/>
<hit index="532" value="1"/>
<hit index="533" value="1"/>
<hit index="535" value="1"/>
<hit index="536" value="1"/>
<hit index="537" value="1"/>
<hit index="538" value="1"/>
<hit index="539" value="2"/>
<hit index="540" value="1"/>
<hit index="541" value="1"/>
<hit index="542" value="1"/>
<hit index="543" value="1"/>
<hit index="544" value="2"/>
<hit index="545" value="1"/>
<hit index="546" value="1"/>
<hit index="547" value="1"/>
<hit index="548" value="1"/>
<hit index="549" value="2"/>
<hit index="550" value="1"/>
<hit index="551" value="1"/>
<hit index="553" value="1"/>
<hit index="554" value="1"/>
<hit index="555" value="1"/>
<hit index="556" value="1"/>
<hit index="557" value="2"/>
<hit index="558" value="1"/>
<hit index="559" value="1"/>
<hit index="561" value="1"/>
<hit index="562" value="1"/>
<hit index="563" value="1"/>
<hit index="564" value="1"/>
<hit index="565" value="2"/>
<hit index="566" value="1"/>
<hit index="567" value="1"/>
<hit index="568" value="1"/>
<hit index="569" value="1"/>
<hit index="570" value="2"/>
<hit index="571" value="1"/>
<hit index="572" value="1"/>
<hit index="574" value="1"/>
<hit index="575" value="1"/>
<hit index="576" value="1"/>
<hit index="577" value="1"/>
<hit index="578" value="2"/>
<hit index="579" value="1"/>
<hit index="580" value="1"/>
<hit index="581" value="1"/>
<hit index="582" value="1"/>
<hit index="583" value="2"/>
<hit index="584" value="1"/>
<hit index="585" value="1"/>
<hit index="586" value="1"/>
<hit index="587" value="1"/>
<hit index="588" value="2"/>
<hit index="589" value="1"/>
<hit index="590" value="1"/>
<hit index="591" value="1"/>
<hit index="592" value="1"/>
<hit index="593" value="2"/>
<hit index="594" value="1"/>
<hit index="595" value="1"/>
<hit index="597" value="1"/>
<hit index="598" value="1"/>
<hit index="599" value="1"/>
<hit index="600" value="1"/>
<hit index="601" value="2"/>
<hit index="602" value="1"/>
<hit index="603" value="1"/>
<hit index="605" value="1"/>
<hit index="606" value="1"/>
<hit index="607" value="1"/>
<hit index="608" value="1"/>
<hit index="609" value="2"/>
<hit index="610" value="1"/>
<hit index="611" value="1"/>
<hit index="612" value="1"/>
<hit index="613" value="1"/>
<hit index="614" value="2"/>
<hit index="615" value="1"/>
<hit index="616" value="1"/>
<hit index="618" value="1"/>
<hit index="619" value="1"/>
<hit index="620" value="1"/>
<hit index="621" value="1"/>
<hit index="622" value="2"/>
<hit index="623" value="1"/>
<hit index="624" value="1"/>
<hit index="625" value="1"/>
<hit index="626" value="1"/>
<hit index="627" value="2"/>
<hit index="628" value="1"/>
<hit index="629" value="1"/>
<hit index="630" value="1"/>
<hit index="631" value="1"/>
<hit index="632" value="2"/>
<hit index="633" value="1"/>
<hit index="634" value="1"/>
<hit index="635" value="1"/>
<hit index="636" value="1"/>
<hit index="637" value="2"/>
<hit index="638" value="1"/>
<hit index="639" value="1"/>
<hit index="641" value="1"/>
<hit index="642" value="1"/>
<hit index="643" value="1"/>
<hit index="644" value="1"/>
<hit index="645" value="2"/>
<hit index="646" value="1"/>
<hit index="647" value="1"/>
<hit index="649" value="1"/>
<hit index="650" value="1"/>
<hit index="651" value="1"/>
<hit index="652" value="1"/>
<hit index="653" value="2"/>
<hit index="654" value="1"/>
<hit index="655" value="1"/>
<hit index="656" value="1"/>
<hit index="657" value="1"/>
<hit index="658" value="2"/>
<hit index="659" value="1"/>
<hit index="660" value="1"/>
<hit index="662" value="1"/>
<hit index="663" value="1"/>
<hit index="664" value="1"/>
<hit index="665" value="1"/>
<hit index="666" value="2"/>
<hit index="667" value="1"/>
<hit index="668" value="1"/>
<hit index="669" value="1"/>
<hit index="670" value="1"/>
<hit index="671" value="2"/>
<hit index="672" value="1"/>
<hit index="673" value="1"/>
<hit index="674" value="1"/>
<hit index="675" value="1"/>
<hit index="676" value="2"/>
<hit index="677" value="1"/>
<hit index="678" value="1"/>
<hit index="679" value="1"/>
<hit index="680" value="1"/>
<hit index="681" value="2"/>
<hit index="682" value="1"/>
<hit index="683" value="1"/>
<hit index="685" value="1"/>
<hit index="686" value="1"/>
<hit index="687" value="1"/>
<hit index="688" value="1"/>
<hit index="689" value="2"/>
<hit index="690" value="1"/>
<hit index="691" value="1"/>
<hit index="692" value="1"/>
<hit index="693" value="1"/>
<hit index="694" value="1"/>
<hit index="695" value="1"/>
<hit index="696" value="2"/>
<hit index="697" value="1"/>
<hit index="698" value="1"/>
<hit index="700" value="1"/>
<hit index="701" value="1"/>
<hit index="702" value="1"/>
<hit index="703" value="1"/>
<hit index="704" value="2"/>
<hit index="705" value="1"/>
<hit index="706" value="1"/>
<hit index="707" value="1"/>
<hit index="708" value="1"/>
<hit index="709" value="2"/>
<hit index="710" value="1"/>
<hit index="711" value="1"/>
<hit index="713" value="1"/>
<hit index="714" value="1"/>
<hit index="715" value="1"/>
<hit index="716" value="1"/>
<hit index="717" value="2"/>
<hit index="718" value="1"/>
<hit index="719" value="1"/>
<hit index="720" value="1"/>
<hit index="721" value="1"/>
<hit index="722" value="2"/>
<hit index="723" value="1"/>
<hit index="724" value="1"/>
<hit index="725" value="1"/>
<hit index="726" value="1"/>
<hit index="727" value="2"/>
<hit index="728" value="1"/>
<hit index="729" value="1"/>
<hit index="730" value="1"/>
<hit index="731" value="1"/>
<hit index="732" value="1"/>
<hit index="733" value="1"/>
<hit index="734" value="2"/>
<hit index="735" value="1"/>
<hit index="736" value="1"/>
<hit index="738" value="1"/>
<hit index="739" value="1"/>
<hit index="740" value="1"/>
<hit index="741" value="1"/>
<hit index="742" value="2"/>
<hit index="743" value="1"/>
<hit index="744" value="1"/>
<hit index="745" value="1"/>
<hit index="746" value="1"/>
<hit index="747" value="1"/>
<hit index="748" value="1"/>
<hit index="749" value="2"/>
<hit index="750" value="1"/>
<hit index="751" value="1"/>
<hit index="753" value="1"/>
<hit index="754" value="1"/>
<hit index="755" value="1"/>
<hit index="756" value="1"/>
<hit index="757" value="2"/>
<hit index="758" value="1"/>
<hit index="759" value="1"/>
<hit index="760" value="1"/>
<hit index="761" value="1"/>
<hit index="762" value="2"/>
<hit index="763" value="1"/>
<hit index="764" value="1"/>
<hit index="766" value="1"/>
<hit index="767" value="1"/>
<hit index="768" value="1"/>
<hit index="770" value="1"/>
</hits>
<coverage domain="userortestcode" unit="block" covered="178" total="233" coveredRatio="0.76394849785407726"/>
</method>
<chunk hits="1" offset="0000" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="1" offset="0001" domain="userortestcode"><source><![CDATA[this.gridPanel = new System.Windows.Forms.Panel();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="2" offset="000c" domain="userortestcode"><source><![CDATA[this.CATypeComboBox = new System.Windows.Forms.ComboBox();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="2" offset="0017" domain="userortestcode"><source><![CDATA[this.ChannelComboBox = new System.Windows.Forms.ComboBox();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="2" offset="0022" domain="userortestcode"><source><![CDATA[this.inputModeComboBox = new System.Windows.Forms.ComboBox();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="2" offset="002d" domain="userortestcode"><source><![CDATA[this.MapperComboBox = new System.Windows.Forms.ComboBox();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="2" offset="0038" domain="userortestcode"><source><![CDATA[this.VolumeHscrollbar = new System.Windows.Forms.HScrollBar();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="2" offset="0043" domain="userortestcode"><source><![CDATA[this.playButtonPic = new System.Windows.Forms.PictureBox();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="2" offset="004e" domain="userortestcode"><source><![CDATA[this.pauseButtonPic = new System.Windows.Forms.PictureBox();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="2" offset="0059" domain="userortestcode"><source><![CDATA[this.FFpictureBox1 = new System.Windows.Forms.PictureBox();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="2" offset="0064" domain="userortestcode"><source><![CDATA[this.BackwardspictureBox2 = new System.Windows.Forms.PictureBox();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="2" offset="006f" domain="userortestcode"><source><![CDATA[this.okButton = new System.Windows.Forms.Button();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="2" offset="007a" domain="userortestcode"><source><![CDATA[this.saveButton = new System.Windows.Forms.Button();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="2" offset="0085" domain="userortestcode"><source><![CDATA[this.LoadButton = new System.Windows.Forms.Button();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="2" offset="0090" domain="userortestcode"><source><![CDATA[this.soundIconPictureBox1 = new System.Windows.Forms.PictureBox();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="2" offset="009b" domain="userortestcode"><source><![CDATA[this.infoLabel = new System.Windows.Forms.Label();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="2" offset="00a6" domain="userortestcode"><source><![CDATA[this.CAnamePictureBox1 = new System.Windows.Forms.PictureBox();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="2" offset="00b1" domain="userortestcode"><source><![CDATA[((System.ComponentModel.ISupportInitialize)(this.playButtonPic)).BeginInit();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="00bd" domain="userortestcode"><source><![CDATA[((System.ComponentModel.ISupportInitialize)(this.pauseButtonPic)).BeginInit();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="00c9" domain="userortestcode"><source><![CDATA[((System.ComponentModel.ISupportInitialize)(this.FFpictureBox1)).BeginInit();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="00d5" domain="userortestcode"><source><![CDATA[((System.ComponentModel.ISupportInitialize)(this.BackwardspictureBox2)).BeginInit();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="00e1" domain="userortestcode"><source><![CDATA[((System.ComponentModel.ISupportInitialize)(this.soundIconPictureBox1)).BeginInit();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="00ed" domain="userortestcode"><source><![CDATA[((System.ComponentModel.ISupportInitialize)(this.CAnamePictureBox1)).BeginInit();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="00f9" domain="userortestcode"><source><![CDATA[this.SuspendLayout();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            // 
            // gridPanel
            // 
            ]]></source>
</chunk>
<chunk hits="1" offset="0100" domain="userortestcode"><source><![CDATA[this.gridPanel.BackColor = System.Drawing.SystemColors.ControlDarkDark;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="0111" domain="userortestcode"><source><![CDATA[this.gridPanel.Location = new System.Drawing.Point(36, 149);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="0129" domain="userortestcode"><source><![CDATA[this.gridPanel.Name = "gridPanel";]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="013a" domain="userortestcode"><source><![CDATA[this.gridPanel.Size = new System.Drawing.Size(294, 294);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="0155" domain="userortestcode"><source><![CDATA[this.gridPanel.TabIndex = 0;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="0162" domain="userortestcode"><source><![CDATA[this.gridPanel.MouseClick += new System.Windows.Forms.MouseEventHandler(this.GridPanelClick);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            // 
            // CATypeComboBox
            // 
            ]]></source>
</chunk>
<chunk hits="3" offset="017a" domain="userortestcode"><source><![CDATA[this.CATypeComboBox.FormattingEnabled = true;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="0187" domain="userortestcode"><source><![CDATA[this.CATypeComboBox.Location = new System.Drawing.Point(36, 62);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="019c" domain="userortestcode"><source><![CDATA[this.CATypeComboBox.Name = "CATypeComboBox";]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="01ad" domain="userortestcode"><source><![CDATA[this.CATypeComboBox.Size = new System.Drawing.Size(131, 24);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="01c5" domain="userortestcode"><source><![CDATA[this.CATypeComboBox.TabIndex = 1;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="01d2" domain="userortestcode"><source><![CDATA[this.CATypeComboBox.Text = "Ca Type";]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="01e3" domain="userortestcode"><source><![CDATA[this.CATypeComboBox.SelectedIndexChanged += new System.EventHandler(this.CaComboBoxChanged);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            // 
            // ChannelComboBox
            // 
            ]]></source>
</chunk>
<chunk hits="3" offset="01fb" domain="userortestcode"><source><![CDATA[this.ChannelComboBox.FormattingEnabled = true;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="0208" domain="userortestcode"><source><![CDATA[this.ChannelComboBox.Location = new System.Drawing.Point(36, 90);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="021d" domain="userortestcode"><source><![CDATA[this.ChannelComboBox.Name = "ChannelComboBox";]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="022e" domain="userortestcode"><source><![CDATA[this.ChannelComboBox.Size = new System.Drawing.Size(131, 24);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="0246" domain="userortestcode"><source><![CDATA[this.ChannelComboBox.TabIndex = 2;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="0253" domain="userortestcode"><source><![CDATA[this.ChannelComboBox.Text = "Channel";]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="0264" domain="userortestcode"><source><![CDATA[this.ChannelComboBox.SelectedIndexChanged += new System.EventHandler(this.channelComboBoxChanged);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            // 
            // inputModeComboBox
            // 
            ]]></source>
</chunk>
<chunk hits="3" offset="027c" domain="userortestcode"><source><![CDATA[this.inputModeComboBox.FormattingEnabled = true;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="0289" domain="userortestcode"><source><![CDATA[this.inputModeComboBox.Location = new System.Drawing.Point(177, 60);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="02a1" domain="userortestcode"><source><![CDATA[this.inputModeComboBox.Name = "inputModeComboBox";]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="02b2" domain="userortestcode"><source><![CDATA[this.inputModeComboBox.Size = new System.Drawing.Size(156, 24);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="02ca" domain="userortestcode"><source><![CDATA[this.inputModeComboBox.TabIndex = 3;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="02d7" domain="userortestcode"><source><![CDATA[this.inputModeComboBox.Text = "Input mode";]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="02e8" domain="userortestcode"><source><![CDATA[this.inputModeComboBox.SelectedIndexChanged += new System.EventHandler(this.InputModeChanged);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            // 
            // MapperComboBox
            // 
            ]]></source>
</chunk>
<chunk hits="3" offset="0300" domain="userortestcode"><source><![CDATA[this.MapperComboBox.FormattingEnabled = true;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="030d" domain="userortestcode"><source><![CDATA[this.MapperComboBox.Location = new System.Drawing.Point(177, 90);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="0325" domain="userortestcode"><source><![CDATA[this.MapperComboBox.Name = "MapperComboBox";]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="0336" domain="userortestcode"><source><![CDATA[this.MapperComboBox.Size = new System.Drawing.Size(156, 24);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="034e" domain="userortestcode"><source><![CDATA[this.MapperComboBox.TabIndex = 4;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="035b" domain="userortestcode"><source><![CDATA[this.MapperComboBox.Text = "Ca Musicator";]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="036c" domain="userortestcode"><source><![CDATA[this.MapperComboBox.SelectedIndexChanged += new System.EventHandler(this.MapperChanged);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            // 
            // VolumeHscrollbar
            // 
            ]]></source>
</chunk>
<chunk hits="3" offset="0384" domain="userortestcode"><source><![CDATA[this.VolumeHscrollbar.LargeChange = 5;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="0391" domain="userortestcode"><source><![CDATA[this.VolumeHscrollbar.Location = new System.Drawing.Point(59, 459);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="03a9" domain="userortestcode"><source><![CDATA[this.VolumeHscrollbar.Name = "VolumeHscrollbar";]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="03ba" domain="userortestcode"><source><![CDATA[this.VolumeHscrollbar.Size = new System.Drawing.Size(271, 21);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="03d2" domain="userortestcode"><source><![CDATA[this.VolumeHscrollbar.TabIndex = 5;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="03df" domain="userortestcode"><source><![CDATA[this.VolumeHscrollbar.Value = 100;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="03ed" domain="userortestcode"><source><![CDATA[this.VolumeHscrollbar.ValueChanged += new System.EventHandler(this.volumeScrollBar_CursorChanged);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            // 
            // playButtonPic
            // 
            ]]></source>
</chunk>
<chunk hits="3" offset="0405" domain="userortestcode"><source><![CDATA[this.playButtonPic.BackColor = System.Drawing.Color.Transparent;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="0416" domain="userortestcode"><source><![CDATA[this.playButtonPic.Location = new System.Drawing.Point(36, 492);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="042e" domain="userortestcode"><source><![CDATA[this.playButtonPic.Name = "playButtonPic";]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="043f" domain="userortestcode"><source><![CDATA[this.playButtonPic.Size = new System.Drawing.Size(60, 60);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="0454" domain="userortestcode"><source><![CDATA[this.playButtonPic.TabIndex = 6;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="0461" domain="userortestcode"><source><![CDATA[this.playButtonPic.TabStop = false;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="046e" domain="userortestcode"><source><![CDATA[this.playButtonPic.Click += new System.EventHandler(this.playButtonPic_Click);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            // 
            // pauseButtonPic
            // 
            ]]></source>
</chunk>
<chunk hits="3" offset="0486" domain="userortestcode"><source><![CDATA[this.pauseButtonPic.BackColor = System.Drawing.Color.Transparent;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="0497" domain="userortestcode"><source><![CDATA[this.pauseButtonPic.Location = new System.Drawing.Point(116, 492);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="04af" domain="userortestcode"><source><![CDATA[this.pauseButtonPic.Name = "pauseButtonPic";]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="04c0" domain="userortestcode"><source><![CDATA[this.pauseButtonPic.Size = new System.Drawing.Size(60, 60);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="04d5" domain="userortestcode"><source><![CDATA[this.pauseButtonPic.TabIndex = 7;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="04e2" domain="userortestcode"><source><![CDATA[this.pauseButtonPic.TabStop = false;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="04ef" domain="userortestcode"><source><![CDATA[this.pauseButtonPic.Click += new System.EventHandler(this.PauseButton_Click);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            // 
            // FFpictureBox1
            // 
            ]]></source>
</chunk>
<chunk hits="3" offset="0507" domain="userortestcode"><source><![CDATA[this.FFpictureBox1.BackColor = System.Drawing.Color.Transparent;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="0518" domain="userortestcode"><source><![CDATA[this.FFpictureBox1.Location = new System.Drawing.Point(270, 492);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="0533" domain="userortestcode"><source><![CDATA[this.FFpictureBox1.Name = "FFpictureBox1";]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="0544" domain="userortestcode"><source><![CDATA[this.FFpictureBox1.Size = new System.Drawing.Size(60, 60);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="0559" domain="userortestcode"><source><![CDATA[this.FFpictureBox1.TabIndex = 8;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="0566" domain="userortestcode"><source><![CDATA[this.FFpictureBox1.TabStop = false;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="0573" domain="userortestcode"><source><![CDATA[this.FFpictureBox1.Click += new System.EventHandler(this.ForwardButtonClick);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            // 
            // BackwardspictureBox2
            // 
            ]]></source>
</chunk>
<chunk hits="3" offset="058b" domain="userortestcode"><source><![CDATA[this.BackwardspictureBox2.BackColor = System.Drawing.Color.Transparent;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="059c" domain="userortestcode"><source><![CDATA[this.BackwardspictureBox2.Location = new System.Drawing.Point(192, 492);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="05b7" domain="userortestcode"><source><![CDATA[this.BackwardspictureBox2.Name = "BackwardspictureBox2";]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="05c8" domain="userortestcode"><source><![CDATA[this.BackwardspictureBox2.Size = new System.Drawing.Size(60, 60);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="05dd" domain="userortestcode"><source><![CDATA[this.BackwardspictureBox2.TabIndex = 9;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="05eb" domain="userortestcode"><source><![CDATA[this.BackwardspictureBox2.TabStop = false;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="05f8" domain="userortestcode"><source><![CDATA[this.BackwardspictureBox2.Click += new System.EventHandler(this.RewindButtonClick);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            // 
            // okButton
            // 
            ]]></source>
</chunk>
<chunk hits="3" offset="0610" domain="userortestcode"><source><![CDATA[this.okButton.Location = new System.Drawing.Point(36, 120);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="0625" domain="userortestcode"><source><![CDATA[this.okButton.Name = "okButton";]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="0636" domain="userortestcode"><source><![CDATA[this.okButton.Size = new System.Drawing.Size(131, 23);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="064e" domain="userortestcode"><source><![CDATA[this.okButton.TabIndex = 10;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="065c" domain="userortestcode"><source><![CDATA[this.okButton.Text = "Ok / Confirm";]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="066d" domain="userortestcode"><source><![CDATA[this.okButton.UseVisualStyleBackColor = true;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="067a" domain="userortestcode"><source><![CDATA[this.okButton.Click += new System.EventHandler(this.okButton_Click);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            // 
            // saveButton
            // 
            ]]></source>
</chunk>
<chunk hits="3" offset="0692" domain="userortestcode"><source><![CDATA[this.saveButton.Location = new System.Drawing.Point(177, 120);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="06aa" domain="userortestcode"><source><![CDATA[this.saveButton.Name = "saveButton";]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="06bb" domain="userortestcode"><source><![CDATA[this.saveButton.Size = new System.Drawing.Size(75, 23);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="06d0" domain="userortestcode"><source><![CDATA[this.saveButton.TabIndex = 11;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="06de" domain="userortestcode"><source><![CDATA[this.saveButton.Text = "Save";]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="06ef" domain="userortestcode"><source><![CDATA[this.saveButton.UseVisualStyleBackColor = true;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="06fc" domain="userortestcode"><source><![CDATA[this.saveButton.Click += new System.EventHandler(this.saveButton_Click);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            // 
            // LoadButton
            // 
            ]]></source>
</chunk>
<chunk hits="3" offset="0714" domain="userortestcode"><source><![CDATA[this.LoadButton.Location = new System.Drawing.Point(258, 120);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="072c" domain="userortestcode"><source><![CDATA[this.LoadButton.Name = "LoadButton";]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="073d" domain="userortestcode"><source><![CDATA[this.LoadButton.Size = new System.Drawing.Size(75, 23);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="0752" domain="userortestcode"><source><![CDATA[this.LoadButton.TabIndex = 12;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="0760" domain="userortestcode"><source><![CDATA[this.LoadButton.Text = "Load";]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="0771" domain="userortestcode"><source><![CDATA[this.LoadButton.UseVisualStyleBackColor = true;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="077e" domain="userortestcode"><source><![CDATA[this.LoadButton.Click += new System.EventHandler(this.LoadButton_Click);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            // 
            // soundIconPictureBox1
            // 
            ]]></source>
</chunk>
<chunk hits="3" offset="0796" domain="userortestcode"><source><![CDATA[this.soundIconPictureBox1.BackColor = System.Drawing.Color.Transparent;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="07a7" domain="userortestcode"><source><![CDATA[this.soundIconPictureBox1.Location = new System.Drawing.Point(36, 459);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="07bf" domain="userortestcode"><source><![CDATA[this.soundIconPictureBox1.Name = "soundIconPictureBox1";]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="07d0" domain="userortestcode"><source><![CDATA[this.soundIconPictureBox1.Size = new System.Drawing.Size(20, 20);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="07e5" domain="userortestcode"><source><![CDATA[this.soundIconPictureBox1.TabIndex = 13;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="07f3" domain="userortestcode"><source><![CDATA[this.soundIconPictureBox1.TabStop = false;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            // 
            // infoLabel
            // 
            ]]></source>
</chunk>
<chunk hits="3" offset="0800" domain="userortestcode"><source><![CDATA[this.infoLabel.BackColor = System.Drawing.SystemColors.ControlDarkDark;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="0811" domain="userortestcode"><source><![CDATA[this.infoLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="082f" domain="userortestcode"><source><![CDATA[this.infoLabel.ForeColor = System.Drawing.Color.DeepSkyBlue;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="0840" domain="userortestcode"><source><![CDATA[this.infoLabel.Location = new System.Drawing.Point(95, 13);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="0855" domain="userortestcode"><source><![CDATA[this.infoLabel.Name = "infoLabel";]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="0866" domain="userortestcode"><source><![CDATA[this.infoLabel.Size = new System.Drawing.Size(238, 42);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="1" offset="087e" domain="userortestcode"><source><![CDATA[this.infoLabel.TabIndex = 14;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="088c" domain="userortestcode"><source><![CDATA[this.infoLabel.Text = "Welcome!";]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="089d" domain="userortestcode"><source><![CDATA[this.infoLabel.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            // 
            // CAnamePictureBox1
            // 
            ]]></source>
</chunk>
<chunk hits="0" offset="08ab" domain="userortestcode"><source><![CDATA[this.CAnamePictureBox1.BackColor = System.Drawing.Color.Transparent;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="08bc" domain="userortestcode"><source><![CDATA[this.CAnamePictureBox1.Location = new System.Drawing.Point(36, 24);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="08d1" domain="userortestcode"><source><![CDATA[this.CAnamePictureBox1.Name = "CAnamePictureBox1";]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="08e2" domain="userortestcode"><source><![CDATA[this.CAnamePictureBox1.Size = new System.Drawing.Size(53, 31);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="08f7" domain="userortestcode"><source><![CDATA[this.CAnamePictureBox1.TabIndex = 15;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="0905" domain="userortestcode"><source><![CDATA[this.CAnamePictureBox1.TabStop = false;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            // 
            // CaControl
            // 
            ]]></source>
</chunk>
<chunk hits="0" offset="0912" domain="userortestcode"><source><![CDATA[this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="091a" domain="userortestcode"><source><![CDATA[this.Controls.Add(this.CAnamePictureBox1);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="092c" domain="userortestcode"><source><![CDATA[this.Controls.Add(this.infoLabel);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="093e" domain="userortestcode"><source><![CDATA[this.Controls.Add(this.soundIconPictureBox1);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="0950" domain="userortestcode"><source><![CDATA[this.Controls.Add(this.LoadButton);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="0962" domain="userortestcode"><source><![CDATA[this.Controls.Add(this.saveButton);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="0974" domain="userortestcode"><source><![CDATA[this.Controls.Add(this.okButton);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="0986" domain="userortestcode"><source><![CDATA[this.Controls.Add(this.BackwardspictureBox2);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="0998" domain="userortestcode"><source><![CDATA[this.Controls.Add(this.FFpictureBox1);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="09aa" domain="userortestcode"><source><![CDATA[this.Controls.Add(this.pauseButtonPic);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="09bc" domain="userortestcode"><source><![CDATA[this.Controls.Add(this.playButtonPic);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="09ce" domain="userortestcode"><source><![CDATA[this.Controls.Add(this.VolumeHscrollbar);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="09e0" domain="userortestcode"><source><![CDATA[this.Controls.Add(this.MapperComboBox);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="09f2" domain="userortestcode"><source><![CDATA[this.Controls.Add(this.inputModeComboBox);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="0a04" domain="userortestcode"><source><![CDATA[this.Controls.Add(this.ChannelComboBox);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="0a16" domain="userortestcode"><source><![CDATA[this.Controls.Add(this.CATypeComboBox);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="0a28" domain="userortestcode"><source><![CDATA[this.Controls.Add(this.gridPanel);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="0a3a" domain="userortestcode"><source><![CDATA[this.Name = "CaControl";]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="0a46" domain="userortestcode"><source><![CDATA[this.Size = new System.Drawing.Size(366, 565);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="0a5c" domain="userortestcode"><source><![CDATA[((System.ComponentModel.ISupportInitialize)(this.playButtonPic)).EndInit();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="0a68" domain="userortestcode"><source><![CDATA[((System.ComponentModel.ISupportInitialize)(this.pauseButtonPic)).EndInit();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="0a74" domain="userortestcode"><source><![CDATA[((System.ComponentModel.ISupportInitialize)(this.FFpictureBox1)).EndInit();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="0a80" domain="userortestcode"><source><![CDATA[((System.ComponentModel.ISupportInitialize)(this.BackwardspictureBox2)).EndInit();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="0a8c" domain="userortestcode"><source><![CDATA[((System.ComponentModel.ISupportInitialize)(this.soundIconPictureBox1)).EndInit();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="0a98" domain="userortestcode"><source><![CDATA[((System.ComponentModel.ISupportInitialize)(this.CAnamePictureBox1)).EndInit();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="0aa4" domain="userortestcode"><source><![CDATA[this.ResumeLayout(false);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[

		]]></source>
</chunk>
<chunk hits="0" offset="0aac" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[

		#endregion

		private System.Windows.Forms.Panel gridPanel;
        //Made this public to set it as a default
		public System.Windows.Forms.ComboBox CATypeComboBox;
        //Made this public to set it as a default
		public System.Windows.Forms.ComboBox ChannelComboBox;
        //Made this public to set it as a default
		public System.Windows.Forms.ComboBox inputModeComboBox;
        //Made this public to set it as a default
		public System.Windows.Forms.ComboBox MapperComboBox;
		private System.Windows.Forms.HScrollBar VolumeHscrollbar;
		private System.Windows.Forms.PictureBox playButtonPic;
		private System.Windows.Forms.PictureBox pauseButtonPic;
		private System.Windows.Forms.PictureBox FFpictureBox1;
		private System.Windows.Forms.PictureBox BackwardspictureBox2;
		private System.Windows.Forms.Button okButton;
		private System.Windows.Forms.Button saveButton;
		private System.Windows.Forms.Button LoadButton;
		private System.Windows.Forms.PictureBox soundIconPictureBox1;
		private System.Windows.Forms.Label infoLabel;
		private System.Windows.Forms.PictureBox CAnamePictureBox1;
	}
}
]]></source>
</chunk>
</document>
<document src="C:\Users\Anders\Documents\automatones\Visual Studio\AutomaTones\AutomaTones\View\GUI View\Main.Designer.cs" renderPrefix="s8"><chunk hits="-1" domain="unknown"><source><![CDATA[namespace AutomaTones.View.GUI_View {
    partial class Main : IMasterView{
        /// <summary> 
        /// Required designer variable.
        /// </summary>
        ]]></source>
</chunk>
<method name=".ctor" namespace="AutomaTones.View.GUI_View" type="AutomaTones.View.GUI_View.Main" typeName="Main" token="60001d4" module="AutomaTones.exe"><hits><hit index="0" value="1"/>
<hit index="1" value="1"/>
<hit index="2" value="1"/>
<hit index="3" value="1"/>
<hit index="4" value="1"/>
<hit index="5" value="1"/>
<hit index="6" value="1"/>
<hit index="7" value="1"/>
<hit index="8" value="1"/>
<hit index="9" value="1"/>
<hit index="10" value="1"/>
<hit index="11" value="1"/>
<hit index="12" value="1"/>
<hit index="13" value="1"/>
<hit index="14" value="1"/>
<hit index="15" value="1"/>
<hit index="16" value="2"/>
<hit index="17" value="1"/>
</hits>
<coverage domain="userortestcode" unit="block" covered="5" total="19" coveredRatio="0.26315789473684209"/>
</method>
<chunk hits="1" offset="0000" domain="userortestcode"><source><![CDATA[private System.ComponentModel.IContainer components = null;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[

        /// <summary> 
        /// Clean up any resources being used.
        /// </summary>
        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
        protected override void Dispose(bool disposing) {
            if (disposing && (components != null)) {
                components.Dispose();
            }
            base.Dispose(disposing);
        }

        #region Component Designer generated code

        /// <summary> 
        /// Required method for Designer support - do not modify 
        /// the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent() ]]></source>
</chunk>
<method name="InitializeComponent" namespace="AutomaTones.View.GUI_View" type="AutomaTones.View.GUI_View.Main" typeName="Main" token="60001e5" module="AutomaTones.exe"><hits><hit index="0" value="1"/>
<hit index="1" value="1"/>
<hit index="3" value="1"/>
<hit index="4" value="1"/>
<hit index="5" value="1"/>
<hit index="6" value="1"/>
<hit index="8" value="1"/>
<hit index="9" value="1"/>
<hit index="10" value="1"/>
<hit index="11" value="1"/>
<hit index="13" value="1"/>
<hit index="14" value="1"/>
<hit index="15" value="1"/>
<hit index="16" value="1"/>
<hit index="18" value="1"/>
<hit index="19" value="1"/>
<hit index="20" value="1"/>
<hit index="21" value="1"/>
<hit index="23" value="1"/>
<hit index="24" value="1"/>
<hit index="25" value="1"/>
<hit index="26" value="1"/>
<hit index="27" value="1"/>
<hit index="28" value="1"/>
<hit index="29" value="1"/>
<hit index="30" value="2"/>
<hit index="31" value="1"/>
<hit index="32" value="1"/>
<hit index="33" value="1"/>
<hit index="34" value="1"/>
<hit index="35" value="2"/>
<hit index="36" value="1"/>
<hit index="37" value="1"/>
<hit index="38" value="1"/>
<hit index="39" value="1"/>
<hit index="40" value="2"/>
<hit index="41" value="1"/>
<hit index="42" value="1"/>
<hit index="43" value="1"/>
<hit index="44" value="1"/>
<hit index="45" value="2"/>
<hit index="46" value="1"/>
<hit index="47" value="1"/>
<hit index="48" value="1"/>
<hit index="49" value="1"/>
<hit index="51" value="1"/>
<hit index="52" value="1"/>
<hit index="53" value="1"/>
<hit index="54" value="1"/>
<hit index="55" value="2"/>
<hit index="56" value="1"/>
<hit index="57" value="1"/>
<hit index="58" value="1"/>
<hit index="59" value="1"/>
<hit index="60" value="2"/>
<hit index="61" value="1"/>
<hit index="62" value="1"/>
<hit index="64" value="1"/>
<hit index="65" value="1"/>
<hit index="66" value="1"/>
<hit index="67" value="1"/>
<hit index="68" value="2"/>
<hit index="69" value="1"/>
<hit index="70" value="1"/>
<hit index="71" value="1"/>
<hit index="72" value="1"/>
<hit index="73" value="2"/>
<hit index="74" value="1"/>
<hit index="75" value="1"/>
<hit index="76" value="1"/>
<hit index="77" value="1"/>
<hit index="78" value="2"/>
<hit index="79" value="1"/>
<hit index="80" value="1"/>
<hit index="82" value="1"/>
<hit index="83" value="1"/>
<hit index="84" value="1"/>
<hit index="85" value="1"/>
<hit index="86" value="2"/>
<hit index="87" value="1"/>
<hit index="88" value="1"/>
<hit index="90" value="1"/>
<hit index="91" value="1"/>
<hit index="92" value="1"/>
<hit index="93" value="1"/>
<hit index="94" value="2"/>
<hit index="95" value="1"/>
<hit index="96" value="1"/>
<hit index="97" value="1"/>
<hit index="98" value="1"/>
<hit index="99" value="2"/>
<hit index="100" value="1"/>
<hit index="101" value="1"/>
<hit index="103" value="1"/>
<hit index="104" value="1"/>
<hit index="105" value="1"/>
<hit index="106" value="1"/>
<hit index="107" value="2"/>
<hit index="108" value="1"/>
<hit index="109" value="1"/>
<hit index="110" value="1"/>
<hit index="111" value="1"/>
<hit index="112" value="2"/>
<hit index="113" value="1"/>
<hit index="114" value="1"/>
<hit index="115" value="1"/>
<hit index="116" value="1"/>
<hit index="117" value="2"/>
<hit index="118" value="1"/>
<hit index="119" value="1"/>
<hit index="121" value="1"/>
<hit index="122" value="1"/>
<hit index="123" value="1"/>
<hit index="124" value="1"/>
<hit index="125" value="2"/>
<hit index="126" value="1"/>
<hit index="127" value="1"/>
<hit index="129" value="1"/>
<hit index="130" value="1"/>
<hit index="131" value="1"/>
<hit index="132" value="1"/>
<hit index="133" value="2"/>
<hit index="134" value="1"/>
<hit index="135" value="1"/>
<hit index="136" value="1"/>
<hit index="137" value="1"/>
<hit index="138" value="2"/>
<hit index="139" value="1"/>
<hit index="140" value="1"/>
<hit index="142" value="1"/>
<hit index="143" value="1"/>
<hit index="144" value="1"/>
<hit index="145" value="1"/>
<hit index="146" value="2"/>
<hit index="147" value="1"/>
<hit index="148" value="1"/>
<hit index="149" value="1"/>
<hit index="150" value="1"/>
<hit index="151" value="2"/>
<hit index="152" value="1"/>
<hit index="153" value="1"/>
<hit index="154" value="1"/>
<hit index="155" value="1"/>
<hit index="156" value="2"/>
<hit index="157" value="1"/>
<hit index="158" value="1"/>
<hit index="160" value="1"/>
<hit index="161" value="1"/>
<hit index="162" value="1"/>
<hit index="163" value="1"/>
<hit index="164" value="2"/>
<hit index="165" value="1"/>
<hit index="166" value="1"/>
<hit index="168" value="1"/>
<hit index="169" value="1"/>
<hit index="170" value="1"/>
<hit index="171" value="1"/>
<hit index="172" value="2"/>
<hit index="173" value="1"/>
<hit index="174" value="1"/>
<hit index="175" value="1"/>
<hit index="176" value="1"/>
<hit index="177" value="2"/>
<hit index="178" value="1"/>
<hit index="179" value="1"/>
<hit index="181" value="1"/>
<hit index="182" value="1"/>
<hit index="183" value="1"/>
<hit index="184" value="1"/>
<hit index="185" value="2"/>
<hit index="186" value="1"/>
<hit index="187" value="1"/>
<hit index="188" value="1"/>
<hit index="189" value="1"/>
<hit index="190" value="2"/>
<hit index="191" value="1"/>
<hit index="192" value="1"/>
<hit index="193" value="1"/>
<hit index="194" value="1"/>
<hit index="195" value="2"/>
<hit index="196" value="1"/>
<hit index="197" value="1"/>
<hit index="199" value="1"/>
<hit index="200" value="1"/>
<hit index="201" value="1"/>
<hit index="202" value="1"/>
<hit index="203" value="2"/>
<hit index="204" value="1"/>
<hit index="205" value="1"/>
<hit index="207" value="1"/>
<hit index="208" value="1"/>
<hit index="209" value="1"/>
<hit index="210" value="1"/>
<hit index="211" value="2"/>
<hit index="212" value="1"/>
<hit index="213" value="1"/>
<hit index="214" value="1"/>
<hit index="215" value="1"/>
<hit index="216" value="2"/>
<hit index="217" value="1"/>
<hit index="218" value="1"/>
<hit index="220" value="1"/>
<hit index="221" value="1"/>
<hit index="222" value="1"/>
<hit index="223" value="1"/>
<hit index="224" value="2"/>
<hit index="225" value="1"/>
<hit index="226" value="1"/>
<hit index="227" value="1"/>
<hit index="228" value="1"/>
<hit index="229" value="2"/>
<hit index="230" value="1"/>
<hit index="231" value="1"/>
<hit index="233" value="1"/>
<hit index="234" value="1"/>
<hit index="235" value="1"/>
<hit index="236" value="1"/>
<hit index="237" value="2"/>
<hit index="238" value="1"/>
<hit index="239" value="1"/>
<hit index="240" value="1"/>
<hit index="241" value="1"/>
<hit index="242" value="1"/>
<hit index="243" value="1"/>
<hit index="244" value="1"/>
<hit index="245" value="1"/>
<hit index="246" value="2"/>
<hit index="247" value="1"/>
<hit index="248" value="1"/>
<hit index="249" value="1"/>
<hit index="250" value="1"/>
<hit index="251" value="1"/>
<hit index="252" value="1"/>
<hit index="253" value="2"/>
<hit index="254" value="1"/>
<hit index="255" value="1"/>
<hit index="256" value="1"/>
<hit index="257" value="1"/>
<hit index="258" value="1"/>
<hit index="259" value="1"/>
<hit index="260" value="2"/>
<hit index="261" value="1"/>
<hit index="262" value="1"/>
<hit index="263" value="1"/>
<hit index="264" value="1"/>
<hit index="265" value="1"/>
<hit index="266" value="1"/>
<hit index="267" value="2"/>
<hit index="268" value="1"/>
<hit index="269" value="1"/>
<hit index="270" value="1"/>
<hit index="271" value="1"/>
<hit index="272" value="1"/>
<hit index="273" value="1"/>
<hit index="274" value="2"/>
<hit index="275" value="1"/>
<hit index="276" value="1"/>
<hit index="277" value="1"/>
<hit index="279" value="1"/>
<hit index="280" value="1"/>
<hit index="281" value="1"/>
<hit index="282" value="1"/>
<hit index="283" value="1"/>
<hit index="284" value="1"/>
<hit index="285" value="1"/>
<hit index="286" value="2"/>
<hit index="287" value="1"/>
<hit index="288" value="1"/>
<hit index="289" value="1"/>
<hit index="290" value="1"/>
<hit index="291" value="2"/>
<hit index="292" value="1"/>
<hit index="293" value="1"/>
<hit index="294" value="1"/>
<hit index="295" value="1"/>
<hit index="296" value="2"/>
<hit index="297" value="1"/>
<hit index="298" value="1"/>
<hit index="299" value="1"/>
<hit index="300" value="1"/>
<hit index="301" value="2"/>
<hit index="302" value="1"/>
<hit index="303" value="1"/>
</hits>
<coverage domain="userortestcode" unit="block" covered="74" total="74" coveredRatio="1"/>
</method>
<chunk hits="1" offset="0000" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="1" offset="0001" domain="userortestcode"><source><![CDATA[this.play = new System.Windows.Forms.PictureBox();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="2" offset="000c" domain="userortestcode"><source><![CDATA[this.pause = new System.Windows.Forms.PictureBox();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="2" offset="0017" domain="userortestcode"><source><![CDATA[this.forwards = new System.Windows.Forms.PictureBox();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="2" offset="0022" domain="userortestcode"><source><![CDATA[this.backwards = new System.Windows.Forms.PictureBox();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="2" offset="002d" domain="userortestcode"><source><![CDATA[this.volumeScrollBar1 = new System.Windows.Forms.VScrollBar();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="2" offset="0038" domain="userortestcode"><source><![CDATA[((System.ComponentModel.ISupportInitialize)(this.play)).BeginInit();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="0044" domain="userortestcode"><source><![CDATA[((System.ComponentModel.ISupportInitialize)(this.pause)).BeginInit();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="0050" domain="userortestcode"><source><![CDATA[((System.ComponentModel.ISupportInitialize)(this.forwards)).BeginInit();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="005c" domain="userortestcode"><source><![CDATA[((System.ComponentModel.ISupportInitialize)(this.backwards)).BeginInit();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="0068" domain="userortestcode"><source><![CDATA[this.SuspendLayout();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            // 
            // play
            // 
            ]]></source>
</chunk>
<chunk hits="1" offset="006f" domain="userortestcode"><source><![CDATA[this.play.Location = new System.Drawing.Point(15, 149);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="0087" domain="userortestcode"><source><![CDATA[this.play.Name = "play";]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="0098" domain="userortestcode"><source><![CDATA[this.play.Size = new System.Drawing.Size(60, 55);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="00ad" domain="userortestcode"><source><![CDATA[this.play.TabIndex = 0;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="00ba" domain="userortestcode"><source><![CDATA[this.play.TabStop = false;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="00c7" domain="userortestcode"><source><![CDATA[this.play.MouseClick += new System.Windows.Forms.MouseEventHandler(this.playPicclick);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            // 
            // pause
            // 
            ]]></source>
</chunk>
<chunk hits="3" offset="00df" domain="userortestcode"><source><![CDATA[this.pause.Location = new System.Drawing.Point(15, 210);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="00f7" domain="userortestcode"><source><![CDATA[this.pause.Name = "pause";]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="0108" domain="userortestcode"><source><![CDATA[this.pause.Size = new System.Drawing.Size(60, 55);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="011d" domain="userortestcode"><source><![CDATA[this.pause.TabIndex = 1;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="012a" domain="userortestcode"><source><![CDATA[this.pause.TabStop = false;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="0137" domain="userortestcode"><source><![CDATA[this.pause.MouseClick += new System.Windows.Forms.MouseEventHandler(this.pausePicClick);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            // 
            // forwards
            // 
            ]]></source>
</chunk>
<chunk hits="3" offset="014f" domain="userortestcode"><source><![CDATA[this.forwards.Location = new System.Drawing.Point(15, 271);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="0167" domain="userortestcode"><source><![CDATA[this.forwards.Name = "forwards";]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="0178" domain="userortestcode"><source><![CDATA[this.forwards.Size = new System.Drawing.Size(60, 55);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="018d" domain="userortestcode"><source><![CDATA[this.forwards.TabIndex = 2;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="019a" domain="userortestcode"><source><![CDATA[this.forwards.TabStop = false;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="01a7" domain="userortestcode"><source><![CDATA[this.forwards.MouseClick += new System.Windows.Forms.MouseEventHandler(this.forwardPicClick);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            // 
            // backwards
            // 
            ]]></source>
</chunk>
<chunk hits="3" offset="01bf" domain="userortestcode"><source><![CDATA[this.backwards.Location = new System.Drawing.Point(15, 332);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="01d7" domain="userortestcode"><source><![CDATA[this.backwards.Name = "backwards";]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="01e8" domain="userortestcode"><source><![CDATA[this.backwards.Size = new System.Drawing.Size(60, 55);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="01fd" domain="userortestcode"><source><![CDATA[this.backwards.TabIndex = 3;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="020a" domain="userortestcode"><source><![CDATA[this.backwards.TabStop = false;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="0217" domain="userortestcode"><source><![CDATA[this.backwards.MouseClick += new System.Windows.Forms.MouseEventHandler(this.back);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            // 
            // volumeScrollBar1
            // 
            ]]></source>
</chunk>
<chunk hits="3" offset="022f" domain="userortestcode"><source><![CDATA[this.volumeScrollBar1.Location = new System.Drawing.Point(15, 14);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="0244" domain="userortestcode"><source><![CDATA[this.volumeScrollBar1.Name = "volumeScrollBar1";]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="0255" domain="userortestcode"><source><![CDATA[this.volumeScrollBar1.Size = new System.Drawing.Size(60, 132);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="026d" domain="userortestcode"><source><![CDATA[this.volumeScrollBar1.TabIndex = 4;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="027a" domain="userortestcode"><source><![CDATA[this.volumeScrollBar1.ValueChanged += new System.EventHandler(this.VolumeChanged);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            // 
            // Main
            // 
            ]]></source>
</chunk>
<chunk hits="3" offset="0292" domain="userortestcode"><source><![CDATA[this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="1" offset="029a" domain="userortestcode"><source><![CDATA[this.Controls.Add(this.volumeScrollBar1);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="02ac" domain="userortestcode"><source><![CDATA[this.Controls.Add(this.backwards);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="02be" domain="userortestcode"><source><![CDATA[this.Controls.Add(this.forwards);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="02d0" domain="userortestcode"><source><![CDATA[this.Controls.Add(this.pause);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="02e2" domain="userortestcode"><source><![CDATA[this.Controls.Add(this.play);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="02f4" domain="userortestcode"><source><![CDATA[this.Name = "Main";]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="1" offset="0300" domain="userortestcode"><source><![CDATA[this.Size = new System.Drawing.Size(90, 400);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="1" offset="0313" domain="userortestcode"><source><![CDATA[((System.ComponentModel.ISupportInitialize)(this.play)).EndInit();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="031f" domain="userortestcode"><source><![CDATA[((System.ComponentModel.ISupportInitialize)(this.pause)).EndInit();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="032b" domain="userortestcode"><source><![CDATA[((System.ComponentModel.ISupportInitialize)(this.forwards)).EndInit();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="0337" domain="userortestcode"><source><![CDATA[((System.ComponentModel.ISupportInitialize)(this.backwards)).EndInit();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="0343" domain="userortestcode"><source><![CDATA[this.ResumeLayout(false);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[

        ]]></source>
</chunk>
<chunk hits="1" offset="034b" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[

        #endregion

        private System.Windows.Forms.PictureBox play;
        private System.Windows.Forms.PictureBox pause;
        private System.Windows.Forms.PictureBox forwards;
        private System.Windows.Forms.PictureBox backwards;
        private System.Windows.Forms.VScrollBar volumeScrollBar1;
    }
}
]]></source>
</chunk>
</document>
<document src="C:\Users\Anders\Documents\automatones\Visual Studio\AutomaTones\AutomaTones\View\GUI View\Main.cs" renderPrefix="s9"><chunk hits="-1" domain="unknown"><source><![CDATA[/*
 * An implementation of an IMasterView. This view assigns it self with the main controller and will thus
 * work as a main input UI for controller the CA
 * Author: Anders Høst | ahkj@itu.dk
 * date: 13 dec 2010
 * */
using System;
using System.Drawing;
using System.Reflection;
using System.Windows.Forms;
using System.Windows.Forms.VisualStyles;

namespace AutomaTones.View.GUI_View {
    public partial class Main : UserControl {
        private readonly Assembly _files;
        ]]></source>
</chunk>
<chunk hits="2" offset="0007" domain="userortestcode"><source><![CDATA[public Main()]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="1" offset="000e" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="1" offset="000f" domain="userortestcode"><source><![CDATA[InitializeComponent();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            // Gets all the embedded resources and collects them in this assembly.
            ]]></source>
</chunk>
<chunk hits="1" offset="0016" domain="userortestcode"><source><![CDATA[_files = Assembly.GetExecutingAssembly();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="2" offset="0021" domain="userortestcode"><source><![CDATA[play.Image = new Bitmap(_files.GetManifestResourceStream("AutomaTones.Graphics.PlayButton.png"));]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="0042" domain="userortestcode"><source><![CDATA[pause.Image = new Bitmap(_files.GetManifestResourceStream("AutomaTones.Graphics.PauseButton.png"));]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="0063" domain="userortestcode"><source><![CDATA[forwards.Image = new Bitmap(_files.GetManifestResourceStream("AutomaTones.Graphics.FastForward.png"));]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="0084" domain="userortestcode"><source><![CDATA[backwards.Image = new Bitmap(_files.GetManifestResourceStream("AutomaTones.Graphics.Backwards.png"));]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="00a5" domain="userortestcode"><source><![CDATA[this.BackgroundImage = new Bitmap(_files.GetManifestResourceStream("AutomaTones.Graphics.main.png"));]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
        ]]></source>
</chunk>
<chunk hits="0" offset="00c1" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[

        public Action OnPlayButtonClickEvent { get;
            set;
        }

        public Action OnPauseButtonClickEvent { get;
            set;
        }

        public Action OnRewindButtonClickEvent { get;
            set;
        }

        public Action OnForwardButtonClickEvent { get; set; }

        public Action<int> OnVolumeChangeEvent {
            get;
            set;
        }

        private void VolumeChanged(object sender, EventArgs e){
            VScrollBar sc = (VScrollBar)sender;
            OnVolumeChangeEvent.Invoke(sc.Value);
        }

        private void forwardPicClick(object sender, MouseEventArgs e) {
            OnForwardButtonClickEvent.Invoke();
        }

        private void pausePicClick(object sender, MouseEventArgs e) {
            OnPauseButtonClickEvent.Invoke();
        }

        private void playPicclick(object sender, MouseEventArgs e)
        {
            OnPlayButtonClickEvent.Invoke();
        }

        private void back(object sender, MouseEventArgs e) {
            OnRewindButtonClickEvent.Invoke();
        }
    }
}
]]></source>
</chunk>
</document>
<document src="C:\Users\Anders\Documents\automatones\Visual Studio\AutomaTones\AutomaTones\HW Sense Compute\ConnectLaunchpad.cs" renderPrefix="s10"><chunk hits="-1" domain="unknown"><source><![CDATA[using System;
using System.Diagnostics.Contracts;
using Midi;
using Microsoft.Pex.Framework;

namespace AutomaTones.HW_Sense_Compute {
    /// <summary>
    /// Looks through the installed midi devices and connects the Launchpad if present.
    /// </summary>
    /// <author>Anders Bech Mellson, anbh@itu.dk</author>
    [PexClass]
    class ConnectLaunchpad:IConnect {
        public static InputDevice In;
        public static OutputDevice Out;

        int? _inDevice, _outDevice;
        const String Error = "No Launchpad present. Have you installed the driver?";
        
        ]]></source>
</chunk>
<method name=".ctor" namespace="AutomaTones.HW_Sense_Compute" type="AutomaTones.HW_Sense_Compute.ConnectLaunchpad" typeName="ConnectLaunchpad" token="6000211" module="AutomaTones.exe"><hits><hit index="0" value="1"/>
<hit index="1" value="1"/>
<hit index="2" value="1"/>
<hit index="3" value="1"/>
<hit index="4" value="1"/>
<hit index="5" value="1"/>
<hit index="20" value="1"/>
</hits>
<coverage domain="userortestcode" unit="block" covered="3" total="8" coveredRatio="0.375"/>
</method>
<chunk hits="1" offset="0000" domain="userortestcode"><source><![CDATA[public ConnectLaunchpad()]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="1" offset="0007" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            Contract.Requires(!this.Connected());
            ]]></source>
</chunk>
<chunk hits="1" offset="0008" domain="userortestcode"><source><![CDATA[In = InputDevice.InstalledDevices[GetInDeviceNumber()];]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="001d" domain="userortestcode"><source><![CDATA[Out = OutputDevice.InstalledDevices[GetOutDeviceNumber()];]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
        ]]></source>
</chunk>
<chunk hits="0" offset="0032" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[

        /// <summary>
        /// Checks whether a Launchpad is connected or not.
        /// </summary>
        [PexMethod]
        public bool Connected() {
            return In!=null && Out!=null;
        }

        /// <summary>
        /// Scans through the connected input devices and sets _inDevice to match the one containing the Launchpad.
        /// </summary>
        private void SetInDeviceNumber() ]]></source>
</chunk>
<method name="SetInDeviceNumber" namespace="AutomaTones.HW_Sense_Compute" type="AutomaTones.HW_Sense_Compute.ConnectLaunchpad" typeName="ConnectLaunchpad" token="6000213" module="AutomaTones.exe"><hits><hit index="0" value="1"/>
<hit index="1" value="1"/>
<hit index="2" value="1"/>
<hit index="3" value="1"/>
<hit index="4" value="1"/>
<hit index="5" value="1"/>
<hit index="6" value="2"/>
<hit index="12" value="1"/>
<hit index="13" value="1"/>
<hit index="14" value="1"/>
<hit index="15" value="1"/>
<hit index="16" value="1"/>
<hit index="17" value="2"/>
<hit index="18" value="1"/>
<hit index="19" value="1"/>
<hit index="20" value="1"/>
<hit index="21" value="2"/>
<hit index="22" value="1"/>
<hit index="23" value="1"/>
<hit index="24" value="1"/>
<hit index="25" value="2"/>
<hit index="26" value="1"/>
<hit index="27" value="1"/>
<hit index="34" value="2"/>
<hit index="35" value="2"/>
<hit index="36" value="2"/>
<hit index="37" value="4"/>
<hit index="38" value="1"/>
<hit index="39" value="1"/>
<hit index="40" value="1"/>
<hit index="44" value="1"/>
<hit index="45" value="1"/>
<hit index="46" value="1"/>
<hit index="47" value="1"/>
<hit index="48" value="2"/>
<hit index="52" value="1"/>
</hits>
<tags><tag offset="003a">call to uninstrumented method DeviceBase.get_Name()</tag>
</tags>
<coverage domain="userortestcode" unit="block" covered="16" total="20" coveredRatio="0.8"/>
</method>
<chunk hits="1" offset="0000" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="1" offset="0001" domain="userortestcode"><source><![CDATA[if (InputDevice.InstalledDevices.Count == 0)]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="0" offset="0015" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="0" offset="0016" domain="userortestcode"><source><![CDATA[throw new System.ArgumentException(Error);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            }
            ]]></source>
</chunk>
<chunk hits="1" offset="0021" domain="userortestcode"><source><![CDATA[int i = 0;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="1" offset="0023" domain="userortestcode"><source><![CDATA[foreach]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ (]]></source>
</chunk>
<chunk hits="1" offset="0031" domain="userortestcode"><source><![CDATA[InputDevice device]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="4" offset="0064" domain="userortestcode"><source><![CDATA[in]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="1" offset="0024" domain="userortestcode"><source><![CDATA[InputDevice.InstalledDevices]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[) ]]></source>
</chunk>
<chunk hits="3" offset="0038" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="3" offset="0039" domain="userortestcode" tag="true"><tooltip><![CDATA[call to uninstrumented method DeviceBase.get_Name()]]></tooltip>
<source><![CDATA[if (device.Name.Contains("Launchpad"))]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="0" offset="0050" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                    ]]></source>
</chunk>
<chunk hits="0" offset="0051" domain="userortestcode"><source><![CDATA[_inDevice = i;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                    ]]></source>
</chunk>
<chunk hits="0" offset="005d" domain="userortestcode"><source><![CDATA[break;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                }
                ]]></source>
</chunk>
<chunk hits="1" offset="005f" domain="userortestcode"><source><![CDATA[i++;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="1" offset="0063" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
        ]]></source>
</chunk>
<chunk hits="1" offset="0081" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[

        /// <summary>
        /// Tries to get the inDevice int. Throws an exception that is handled by MainController if no Launchpad is connected.
        /// </summary>
        private int GetInDeviceNumber() ]]></source>
</chunk>
<method name="GetInDeviceNumber" namespace="AutomaTones.HW_Sense_Compute" type="AutomaTones.HW_Sense_Compute.ConnectLaunchpad" typeName="ConnectLaunchpad" token="6000214" module="AutomaTones.exe"><hits><hit index="0" value="1"/>
<hit index="1" value="1"/>
<hit index="2" value="1"/>
<hit index="3" value="1"/>
<hit index="4" value="1"/>
<hit index="5" value="1"/>
<hit index="6" value="1"/>
<hit index="7" value="1"/>
<hit index="9" value="1"/>
<hit index="10" value="1"/>
<hit index="16" value="1"/>
</hits>
<coverage domain="userortestcode" unit="block" covered="5" total="7" coveredRatio="0.7142857142857143"/>
</method>
<chunk hits="1" offset="0000" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="1" offset="0001" domain="userortestcode"><source><![CDATA[SetInDeviceNumber();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="1" offset="0008" domain="userortestcode"><source><![CDATA[if (_inDevice == null)]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="1" offset="0017" domain="userortestcode"><source><![CDATA[throw new ArgumentException(Error);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="0022" domain="userortestcode"><source><![CDATA[return (int)_inDevice;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
        ]]></source>
</chunk>
<chunk hits="0" offset="0030" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[

        /// <summary>
        /// Scans through the connected output devices and sets _outDevice to match the one containing the Launchpad.
        /// </summary>
        private void SetOutDeviceNumber() {
            if (OutputDevice.InstalledDevices.Count == 0) {
                throw new System.ArgumentException(Error);
            }
            int i = 0;
            foreach (OutputDevice device in OutputDevice.InstalledDevices) {
                if (device.Name.Contains("Launchpad")) {
                    _outDevice = i;
                    break;
                }
                i++;
            }
        }

        /// <summary>
        /// Tries to get the outDevice int. Throws an exception that is handled by MainController if no Launchpad is connected.
        /// </summary>
        private int GetOutDeviceNumber() {
            SetOutDeviceNumber();
            if (_outDevice == null)
                throw new System.ArgumentException(Error);
            return (int)_outDevice;
        }
    }
}]]></source>
</chunk>
</document>
<document src="C:\Users\Anders\Documents\automatones\Visual Studio\AutomaTones\AutomaTones\Model\MIDI\Tempo.cs" renderPrefix="s11"><chunk hits="-1" domain="unknown"><source><![CDATA[using System.Diagnostics.Contracts;
using Microsoft.Pex.Framework;

namespace AutomaTones.Model.MIDI
{
    /// <summary>
    /// Class the can translate a musical format of time (Beats Per Minute) to milliseconds used by Threads.
    /// Instanciate with a BPM and then call the methods to get the corrects value in milliseconds for the called subdivision.
    /// </summary>
    /// <author>Anders Bech Mellson, anbh@itu.dk</author>
    [PexClass]
    public class Tempo {
        private readonly int _bpm;

        /// <summary>
        /// Creates a tempo object with the desired tempo in Beats per minute.
        /// </summary>
        /// <param name="BPM"></param>
        ]]></source>
</chunk>
<method name=".ctor" namespace="AutomaTones.Model.MIDI" type="AutomaTones.Model.MIDI.Tempo" typeName="Tempo" token="6000186" module="AutomaTones.exe"><hits><hit index="0" value="1"/>
<hit index="1" value="1"/>
<hit index="2" value="1"/>
<hit index="3" value="1"/>
<hit index="4" value="1"/>
</hits>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<chunk hits="1" offset="0000" domain="userortestcode"><source><![CDATA[public Tempo(int BPM)]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="1" offset="0007" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            Contract.Requires(BPM>0);
            ]]></source>
</chunk>
<chunk hits="1" offset="0008" domain="userortestcode"><source><![CDATA[this._bpm = BPM;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
        ]]></source>
</chunk>
<chunk hits="2" offset="000f" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[

        /// <summary>
        /// Return the current BPM.
        /// </summary>
        [PexMethod]
        public int BPM() {
            return _bpm;
        }

        /// <summary>
        /// Returns the value of a wholenote in milliseconds.
        /// </summary>
        [PexMethod]
        public int WholeNote() {
            return 240000/_bpm;
        }

        /// <summary>
        /// Returns the value of a halfnote in milliseconds.
        /// </summary>
        [PexMethod]
        public int HalfNote() {
            return 120000/_bpm;
        }

        /// <summary>
        /// Returns the value of a quarternote in milliseconds.
        /// </summary>
        [PexMethod]
        public int QuarterNote() {
            return 60000/_bpm;
        }

        /// <summary>
        /// Returns the value of a eightnote in milliseconds.
        /// </summary>
        [PexMethod]
        public int EighthNote() {
            return 30000/_bpm;
        }

        /// <summary>
        /// Returns the value of a sixteenthnote in milliseconds.
        /// </summary>
        [PexMethod]
        public int SixteenthNote() ]]></source>
</chunk>
<method name="SixteenthNote" namespace="AutomaTones.Model.MIDI" type="AutomaTones.Model.MIDI.Tempo" typeName="Tempo" token="600018c" module="AutomaTones.exe"><hits><hit index="0" value="769"/>
<hit index="1" value="769"/>
<hit index="2" value="769"/>
<hit index="3" value="769"/>
</hits>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<chunk hits="769" offset="0000" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="769" offset="0001" domain="userortestcode"><source><![CDATA[return 15000/_bpm;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
        ]]></source>
</chunk>
<chunk hits="1538" offset="0010" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[

        /// <summary>
        /// Returns the value of a thirtysecondnote in milliseconds.
        /// </summary>
        [PexMethod]
        public int ThirtySecondNote() {
            return 7500/_bpm;
        }
    }
}
]]></source>
</chunk>
</document>
<document src="C:\Users\Anders\Documents\automatones\Visual Studio\AutomaTones\AutomaTones\HW Sense Compute\ComputeLaunchpad.cs" renderPrefix="s12"><chunk hits="-1" domain="unknown"><source><![CDATA[using System;
using AutomaTones.Model.Automaton_Model;
using Midi;
using Microsoft.Pex.Framework;

namespace AutomaTones.HW_Sense_Compute {

    /// <summary>
    /// Computation on inputs from the Launchpad. Part of the Hardware, Sense, Compute pattern.
    /// </summary>
    /// <author>Anders Bech Mellson, anbh@itu.dk</author>
    [PexClass]
    partial class ComputeLaunchpad : ICompute
    {
        private int _x, _y;
        private readonly State _state = new State();
        private bool _settingState, _pushed, _inputGrid, _controlButtonPressed;
        public Action<int,int> LaunchpadEvent;
        public Action<bool> StateButtonEvent;
        public Action<State> StateChangeEvent;
        public Action OkButtonEvent,ClearButtonEvent;

        /// <summary>
        /// Looks at the incoming NoteOnMessage and computes what to do with it.
        /// </summary>
        /// <param name="mMsg"></param>
        [PexMethod]
        public void Compute(NoteOnMessage mMsg) ]]></source>
</chunk>
<method name="Compute" namespace="AutomaTones.HW_Sense_Compute" type="AutomaTones.HW_Sense_Compute.ComputeLaunchpad" typeName="ComputeLaunchpad" token="6000154" module="AutomaTones.exe"><hits><hit index="0" value="1"/>
<hit index="1" value="1"/>
<hit index="48" value="1"/>
</hits>
<coverage domain="userortestcode" unit="block" covered="1" total="17" coveredRatio="0.058823529411764705"/>
</method>
<chunk hits="1" offset="0000" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="1" offset="0001" domain="userortestcode"><source><![CDATA[EvaluateNoteOnMessage(mMsg);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            // Is the pad being released
            ]]></source>
</chunk>
<chunk hits="0" offset="0009" domain="userortestcode"><source><![CDATA[if (!_pushed)]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="0013" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                // Is it a statechange button thats being released
                ]]></source>
</chunk>
<chunk hits="0" offset="0014" domain="userortestcode"><source><![CDATA[if (!_inputGrid)]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="0" offset="001e" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                    ]]></source>
</chunk>
<chunk hits="0" offset="001f" domain="userortestcode"><source><![CDATA[StateButtonEvent(false);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                    ]]></source>
</chunk>
<chunk hits="0" offset="002c" domain="userortestcode"><source><![CDATA[_settingState = false;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="0" offset="0033" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="0" offset="0034" domain="userortestcode"><source><![CDATA[return;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            }
            // Is the pad a statechange pad
            ]]></source>
</chunk>
<chunk hits="0" offset="0036" domain="userortestcode"><source><![CDATA[if (!_inputGrid)]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="0" offset="0040" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                // Is a statechange pad already being pushed
                ]]></source>
</chunk>
<chunk hits="0" offset="0041" domain="userortestcode"><source><![CDATA[if (_settingState)]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                    ]]></source>
</chunk>
<chunk hits="0" offset="004e" domain="userortestcode"><source><![CDATA[return;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="0" offset="0050" domain="userortestcode"><source><![CDATA[SetState(mMsg.Pitch);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="0" offset="005d" domain="userortestcode"><source><![CDATA[StateButtonEvent(true);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="0" offset="006a" domain="userortestcode"><source><![CDATA[_settingState = true;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="0071" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                // Is the pad a valid pad within the 8x8 inputgrid
            else ]]></source>
</chunk>
<chunk hits="0" offset="0074" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="0" offset="0075" domain="userortestcode"><source><![CDATA[SetXandYfromPitch(mMsg.Pitch);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="0" offset="0082" domain="userortestcode"><source><![CDATA[LaunchpadEvent(_x,_y);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="009a" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
        ]]></source>
</chunk>
<chunk hits="0" offset="009b" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[

        /// <summary>
        /// Checks the incoming NoteOnMessage and sets the relevant booleans according to the input.
        /// </summary>
        private void EvaluateNoteOnMessage(NoteOnMessage noteMsg)
        ]]></source>
</chunk>
<method name="EvaluateNoteOnMessage" namespace="AutomaTones.HW_Sense_Compute" type="AutomaTones.HW_Sense_Compute.ComputeLaunchpad" typeName="ComputeLaunchpad" token="6000155" module="AutomaTones.exe"><hits><hit index="0" value="1"/>
<hit index="1" value="1"/>
<hit index="33" value="1"/>
</hits>
<coverage domain="userortestcode" unit="block" covered="1" total="14" coveredRatio="0.071428571428571425"/>
</method>
<chunk hits="1" offset="0000" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="1" offset="0001" domain="userortestcode"><source><![CDATA[switch (noteMsg.Velocity)]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            {
                // Pad is pushed down on the Launchpad
                case 127:
                    ]]></source>
</chunk>
<chunk hits="0" offset="0013" domain="userortestcode"><source><![CDATA[_pushed = true;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                    ]]></source>
</chunk>
<chunk hits="0" offset="001a" domain="userortestcode"><source><![CDATA[break;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                // Pad is being released on the Launchpad
                case 0:
                    ]]></source>
</chunk>
<chunk hits="0" offset="001c" domain="userortestcode"><source><![CDATA[_pushed = false;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                    ]]></source>
</chunk>
<chunk hits="0" offset="0023" domain="userortestcode"><source><![CDATA[break;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            }
            // Pad is in the square 8x8 grid on the Launchpad
            ]]></source>
</chunk>
<chunk hits="0" offset="0025" domain="userortestcode"><source><![CDATA[if (ValidPad(noteMsg.Pitch))]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="0" offset="0037" domain="userortestcode"><source><![CDATA[_inputGrid = true;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            // Pad is one of the round state change pad's on the right side of the Launchpad
            else ]]></source>
</chunk>
<chunk hits="0" offset="0040" domain="userortestcode"><source><![CDATA[if (!ValidPad(noteMsg.Pitch))]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="0" offset="004f" domain="userortestcode"><source><![CDATA[_inputGrid = false;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
        ]]></source>
</chunk>
<chunk hits="0" offset="0056" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[

        /// <summary>
        /// If one of the toprow buttons are pushed it sends events based on the correct button.
        /// </summary>
        [PexMethod]
        public void ControlButton(ControlChangeMessage cMsg) ]]></source>
</chunk>
<method name="ControlButton" namespace="AutomaTones.HW_Sense_Compute" type="AutomaTones.HW_Sense_Compute.ComputeLaunchpad" typeName="ComputeLaunchpad" token="6000156" module="AutomaTones.exe"><hits><hit index="0" value="1"/>
<hit index="1" value="1"/>
<hit index="2" value="1"/>
<hit index="3" value="1"/>
<hit index="4" value="1"/>
<hit index="5" value="1"/>
<hit index="6" value="1"/>
<hit index="25" value="1"/>
</hits>
<coverage domain="userortestcode" unit="block" covered="2" total="10" coveredRatio="0.2"/>
</method>
<chunk hits="1" offset="0000" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="1" offset="0001" domain="userortestcode"><source><![CDATA[_controlButtonPressed = !_controlButtonPressed;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="2" offset="0010" domain="userortestcode"><source><![CDATA[if (_controlButtonPressed)]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="1" offset="001d" domain="userortestcode"><source><![CDATA[switch ((int)cMsg.Control)]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ {
                    case 104:
                        ]]></source>
</chunk>
<chunk hits="0" offset="0030" domain="userortestcode"><source><![CDATA[OkButtonEvent();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                        ]]></source>
</chunk>
<chunk hits="0" offset="003c" domain="userortestcode"><source><![CDATA[break;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                    case 111:
                        ]]></source>
</chunk>
<chunk hits="0" offset="003e" domain="userortestcode"><source><![CDATA[ClearButtonEvent();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                        ]]></source>
</chunk>
<chunk hits="0" offset="004a" domain="userortestcode"><source><![CDATA[break;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                }
        ]]></source>
</chunk>
<chunk hits="0" offset="004c" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[

        /// <summary>
        /// Takes a Pitch and sets the global values of x & y in this class.
        /// The incoming pitch messages are in the range 1-120, some modulo math converts these incoming messages to x & y.
        /// Row one sends: 0-7, Row two sends 16-23, Row three: 32-39, Row four: 48-55, Row five: 64-71, Row six: 80-87, Row seven: 96-103, Row eight: 112-119.
        /// </summary>
        /// <param name="pitch">A Pitch message from an incoming MIDI message.</param>
        private void SetXandYfromPitch(Pitch pitch) {
            int point = (int)pitch;
            _x = (point % 8);
            _y = (point - _x) / 16;
        }

        /// <summary>
        /// Checks if the incoming pitch if within the valid range. Eg if the button press is within the 8x8 field of buttons.
        /// </summary>
        /// <param name="pitch"></param>
        /// <returns></returns>
        private static bool ValidPad(Pitch pitch) {
            int p = (int)pitch;
            if (p > 7 && p < 16 || p > 23 && p < 32 || p > 39 && p < 48 || p > 55 && p < 64 || p > 71 && p < 80 || p > 87 && p < 96 || p > 103 && p < 112 || p > 119)
                return false;
            return true;
        }

        /// <summary>
        /// If the NoteOn message is not in the 8x8 button field, then sets the state according to the button pressed.
        /// </summary>
        /// <param name="pitch"></param>
        private void SetState(Pitch pitch) {
            switch ((int) pitch) {
                case 8:
                    _state.CurrentState = 0;
                    break;
                case 24:
                    _state.CurrentState = 1;
                    break;
                case 40:
                    _state.CurrentState = 2;
                    break;
                case 56:
                    _state.CurrentState = 3;
                    break;
                case 72:
                    _state.CurrentState = 4;
                    break;
                case 88:
                    _state.CurrentState = 5;
                    break;
                case 104:
                    _state.CurrentState = 6;
                    break;
                case 120:
                    _state.CurrentState = 7;
                    break;
            }
            StateChangeEvent(_state);
        }
    }
}
]]></source>
</chunk>
</document>
<document src="C:\Users\Anders\Documents\automatones\Visual Studio\AutomaTones\AutomaTones\Model\Automaton Model\RuleLib\GameOfLife.cs" renderPrefix="s13"><chunk hits="-1" domain="unknown"><source><![CDATA[using System;
using System.Collections.Generic;
using System.Diagnostics.Contracts;
using System.Linq;
using Microsoft.Pex.Framework;
using Microsoft.Pex.Framework.Validation;

namespace AutomaTones.Model.Automaton_Model.RuleLib {
    /// <author>Anders Øland / anoe@itu</author>
    /// <summary>
    /// Provides the rule used for the classic CA called Game of Life - invented by Jonh Conway in the 1970's.<br></br><br></br>
    /// This simple rule generates an impressive diversity of behaviour:
    /// If a black cell has 2 or 3 black neighbours, it stays black. If a black cell has less than 2 or more than 3
    /// black neighbours it becomes white. If a white cell has 3 black neighbours, it becomes black.
    /// <br></br><br></br>
    /// This class also facilitates easy setup of a Game of Life CA, as well as the adding of known patterns to a CA. 
    /// </summary>
    [PexClass]
    public static partial class GameOfLife {
        /// <summary>
        /// The rule used for the classic CA called Game of Life.<br></br><br></br> 
        /// If a black cell has 2 or 3 black neighbours, it stays black. If a black cell has less than 2 or more than 3
        /// black neighbours it becomes white. If a white cell has 3 black neighbours, it becomes black.
        /// <br></br><br></br>
        /// This particular rule has been modified so it can handle state spaces which are not binary.
        /// Thus, if a live cell stays alive in the next generation its state is increased with one.
        /// If the new state > space max ==> new state = 1
        /// </summary>
        public static int GameOfLifeRule(Cell cell, ref IEnumerable<Rule.StateAtCoordinate> statesOfNeighbours,
                                         params int[] unused) {
            Contract.Requires(null != cell);
            Contract.Requires(0 == cell.State.SpaceMin);
            Contract.Requires(1 == cell.State.SpaceMax);
            Contract.Requires(Contract.ForAll(statesOfNeighbours, sn => 2 == sn.Position.Coord.Length));
            Contract.Requires(Contract.ForAll(statesOfNeighbours, sn => cell.State.SpaceMin <= sn.State
                                                                        && cell.State.SpaceMax >= sn.State));
            Contract.Ensures(cell.State.SpaceMin <= Contract.Result<int>());
            Contract.Ensures(cell.State.SpaceMax >= Contract.Result<int>());
            var blackNeighbours = (from n in statesOfNeighbours
                                   where n.State != 0
                                   select n).Count();

            var newState = 0;
            if (0 != cell.State.CurrentState)
                newState = (blackNeighbours == 2 || blackNeighbours == 3) ? 1 : 0;
            else newState = blackNeighbours == 3 ? 1 : 0;
            newState = newState == 0 ? 0 : 1 + cell.State.CurrentState;
            return newState > cell.State.SpaceMax ? 1 : newState;
        }

        /// <summary>
        /// Sets up a Cellular Automaton for Game of Life.
        /// </summary>
        /// <param name="size">Size of the dimensions of the rectangular 2-dimensional grid</param>
        /// <param name="stateSpace"></param>
        /// <returns>Game of Life CA</returns>
        [PexMethod, PexAllowedException(typeof(OverflowException))]
        public static CellularAutomaton SetupGameOfLife(uint size, uint stateSpace = 2u) ]]></source>
</chunk>
<method name="SetupGameOfLife" namespace="AutomaTones.Model.Automaton_Model.RuleLib" type="AutomaTones.Model.Automaton_Model.RuleLib.GameOfLife" typeName="GameOfLife" token="6000095" module="AutomaTones.exe"><hits><hit index="0" value="1"/>
<hit index="1" value="1"/>
<hit index="2" value="1"/>
<hit index="3" value="1"/>
<hit index="5" value="1"/>
<hit index="6" value="1"/>
</hits>
<coverage domain="userortestcode" unit="block" covered="3" total="3" coveredRatio="1"/>
</method>
<chunk hits="1" offset="0000" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            Contract.Requires(0 < size);
            Contract.Requires(1 < stateSpace);
            Contract.Ensures(size == Contract.Result<CellularAutomaton>().DimensionSize);
            Contract.Ensures(2 == Contract.Result<CellularAutomaton>().Dimensions);
            // Create a Rule instance
            ]]></source>
</chunk>
<chunk hits="1" offset="0001" domain="userortestcode"><source><![CDATA[Rule gofRule = GetGofRule();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[

            // Create a CellularAutomaton instance
            ]]></source>
</chunk>
<chunk hits="1" offset="0007" domain="userortestcode"><source><![CDATA[CellularAutomaton gameOfLifeCA = new CellularAutomaton(2, size, gofRule, 0, (int) stateSpace - 1);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="1" offset="0015" domain="userortestcode"><source><![CDATA[return gameOfLifeCA;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
        ]]></source>
</chunk>
<chunk hits="1" offset="0019" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[

        /// <summary>
        /// Get a new GOF Rule instance.
        /// </summary>
        /// <returns></returns>
        public static Rule GetGofRule() ]]></source>
</chunk>
<method name="GetGofRule" namespace="AutomaTones.Model.Automaton_Model.RuleLib" type="AutomaTones.Model.Automaton_Model.RuleLib.GameOfLife" typeName="GameOfLife" token="6000096" module="AutomaTones.exe"><hits><hit index="0" value="1"/>
<hit index="1" value="1"/>
<hit index="3" value="1"/>
<hit index="4" value="1"/>
<hit index="6" value="1"/>
<hit index="8" value="1"/>
<hit index="9" value="1"/>
<hit index="11" value="1"/>
<hit index="12" value="1"/>
<hit index="13" value="1"/>
<hit index="14" value="1"/>
<hit index="15" value="1"/>
<hit index="16" value="1"/>
<hit index="17" value="1"/>
<hit index="18" value="1"/>
<hit index="19" value="1"/>
<hit index="20" value="1"/>
<hit index="21" value="1"/>
<hit index="22" value="1"/>
<hit index="24" value="1"/>
<hit index="25" value="1"/>
<hit index="26" value="1"/>
<hit index="27" value="1"/>
<hit index="28" value="1"/>
<hit index="29" value="1"/>
<hit index="30" value="1"/>
<hit index="31" value="1"/>
<hit index="32" value="1"/>
<hit index="34" value="1"/>
<hit index="35" value="1"/>
<hit index="36" value="1"/>
<hit index="37" value="1"/>
<hit index="38" value="1"/>
<hit index="39" value="1"/>
<hit index="40" value="1"/>
<hit index="41" value="1"/>
<hit index="42" value="1"/>
<hit index="43" value="1"/>
<hit index="44" value="1"/>
<hit index="45" value="1"/>
<hit index="47" value="1"/>
<hit index="48" value="1"/>
<hit index="49" value="1"/>
<hit index="50" value="1"/>
<hit index="51" value="1"/>
<hit index="52" value="1"/>
<hit index="53" value="1"/>
<hit index="54" value="1"/>
<hit index="55" value="1"/>
<hit index="57" value="1"/>
<hit index="58" value="1"/>
<hit index="59" value="1"/>
<hit index="60" value="1"/>
<hit index="61" value="1"/>
<hit index="62" value="1"/>
<hit index="63" value="1"/>
<hit index="64" value="1"/>
<hit index="65" value="1"/>
<hit index="66" value="1"/>
<hit index="67" value="1"/>
<hit index="68" value="1"/>
<hit index="70" value="1"/>
<hit index="71" value="1"/>
<hit index="72" value="1"/>
<hit index="73" value="1"/>
<hit index="74" value="1"/>
<hit index="75" value="1"/>
<hit index="76" value="1"/>
<hit index="77" value="1"/>
<hit index="78" value="1"/>
<hit index="80" value="1"/>
<hit index="81" value="1"/>
<hit index="82" value="1"/>
<hit index="83" value="1"/>
<hit index="84" value="1"/>
<hit index="85" value="1"/>
<hit index="86" value="1"/>
<hit index="87" value="1"/>
<hit index="88" value="1"/>
<hit index="89" value="1"/>
<hit index="90" value="1"/>
<hit index="91" value="1"/>
<hit index="93" value="1"/>
<hit index="94" value="1"/>
<hit index="95" value="1"/>
<hit index="96" value="1"/>
<hit index="97" value="1"/>
<hit index="98" value="1"/>
<hit index="99" value="1"/>
<hit index="100" value="1"/>
<hit index="101" value="1"/>
<hit index="102" value="8"/>
<hit index="103" value="8"/>
<hit index="104" value="8"/>
<hit index="105" value="8"/>
<hit index="106" value="8"/>
<hit index="107" value="16"/>
<hit index="108" value="9"/>
<hit index="109" value="1"/>
<hit index="110" value="8"/>
</hits>
<coverage domain="userortestcode" unit="block" covered="6" total="6" coveredRatio="1"/>
</method>
<chunk hits="1" offset="0000" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            Contract.Ensures(8 == Contract.Result<Rule>().Neighbourhood.Count);
            Contract.Ensures(2 == Contract.Result<Rule>().Dimensions);
            Contract.Ensures(GameOfLifeRule == Contract.Result<Rule>().MyRuleDelegate);
            ]]></source>
</chunk>
<chunk hits="1" offset="0001" domain="userortestcode"><source><![CDATA[Rule gofRule = new Rule(2, GameOfLifeRule);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[

            // Setup the coordinates for the neighbours which the rule uses 
            ]]></source>
</chunk>
<chunk hits="1" offset="0014" domain="userortestcode"><source><![CDATA[var neighbourhood = new[] {
                                          new[] {-1, 1}, new[] {0, 1}, new[] {1, 1}, new[] {1, 0},
                                          new[] {1, -1}, new[] {0, -1}, new[] {-1, -1}, new[] {-1, 0}
                                      };]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[

            ]]></source>
</chunk>
<chunk hits="4" offset="00cb" domain="userortestcode"><source><![CDATA[foreach]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ (]]></source>
</chunk>
<chunk hits="8" offset="00d4" domain="userortestcode"><source><![CDATA[int[] n]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="28" offset="00e8" domain="userortestcode"><source><![CDATA[in]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="4" offset="00cc" domain="userortestcode"><source><![CDATA[neighbourhood]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[) ]]></source>
</chunk>
<chunk hits="16" offset="00da" domain="userortestcode"><source><![CDATA[gofRule.AddNeighbour(n);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="1" offset="00f6" domain="userortestcode"><source><![CDATA[return gofRule;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
        ]]></source>
</chunk>
<chunk hits="1" offset="00fa" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[

        /// <summary>
        /// Demo game of life in the console.
        /// Press a key + return to evolve.
        /// </summary>
        public static void GameOfLifeDemo(GofPattern pattern, int g) {
            CellularAutomaton gameOfLifeCA = SetupGameOfLife(75, 2);

            AddGofPattern(gameOfLifeCA, pattern, 20, 20);

            while (0 < g--) {
                Console.Clear();
                Console.WriteLine(gameOfLifeCA + "\n");
                gameOfLifeCA.Evolve();
//                Console.Read();
            }
// ReSharper disable FunctionNeverReturns
        }
// ReSharper restore FunctionNeverReturns

        /// <summary>
        /// Adds a GofPattern to the Game of Life automaton, centered around the given coordinate.
        /// </summary>
        /// <param name="gofAutomaton"></param>
        /// <param name="gofPattern"></param>
        /// <param name="xPos"></param>
        /// <param name="yPos"></param>
        [PexMethod]
        public static void AddGofPattern(CellularAutomaton gofAutomaton, GofPattern gofPattern, int xPos = 0,
                                         int yPos = 0) ]]></source>
</chunk>
<method name="AddGofPattern" namespace="AutomaTones.Model.Automaton_Model.RuleLib" type="AutomaTones.Model.Automaton_Model.RuleLib.GameOfLife" typeName="GameOfLife" token="6000098" module="AutomaTones.exe"><hits><hit index="0" value="1"/>
<hit index="1" value="1"/>
<hit index="2" value="1"/>
<hit index="3" value="1"/>
<hit index="4" value="1"/>
<hit index="5" value="1"/>
<hit index="6" value="1"/>
<hit index="7" value="1"/>
<hit index="8" value="1"/>
<hit index="9" value="1"/>
<hit index="10" value="1"/>
<hit index="12" value="21"/>
<hit index="13" value="21"/>
<hit index="14" value="21"/>
<hit index="15" value="21"/>
<hit index="16" value="21"/>
<hit index="17" value="21"/>
<hit index="18" value="21"/>
<hit index="19" value="21"/>
<hit index="20" value="21"/>
<hit index="21" value="21"/>
<hit index="22" value="21"/>
<hit index="23" value="21"/>
<hit index="24" value="21"/>
<hit index="25" value="42"/>
<hit index="26" value="3"/>
<hit index="27" value="1"/>
<hit index="28" value="21"/>
<hit index="29" value="3"/>
<hit index="30" value="1"/>
<hit index="31" value="1"/>
<hit index="34" value="1"/>
</hits>
<coverage domain="userortestcode" unit="block" covered="6" total="6" coveredRatio="1"/>
</method>
<chunk hits="1" offset="0000" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            Contract.Requires(null != gofAutomaton);
            Contract.Requires(2 == gofAutomaton.Dimensions);
            ]]></source>
</chunk>
<chunk hits="1" offset="0001" domain="userortestcode"><source><![CDATA[int[] pattern = Patterns[(int) gofPattern];]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="2" offset="0009" domain="userortestcode"><source><![CDATA[int xSize = pattern[0],]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="2" offset="000d" domain="userortestcode"><source><![CDATA[ySize = pattern[1];]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="2" offset="0011" domain="userortestcode"><source><![CDATA[int deltaX = xSize / 2,]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="2" offset="0015" domain="userortestcode"><source><![CDATA[deltaY = ySize / 2;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[

            for (]]></source>
</chunk>
<chunk hits="2" offset="001a" domain="userortestcode"><source><![CDATA[int y = 0;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="5" offset="0070" domain="userortestcode"><source><![CDATA[y < ySize]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[; ]]></source>
</chunk>
<chunk hits="3" offset="006a" domain="userortestcode"><source><![CDATA[y++]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[) ]]></source>
</chunk>
<chunk hits="3" offset="001f" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                for (]]></source>
</chunk>
<chunk hits="3" offset="0020" domain="userortestcode"><source><![CDATA[int x = 0;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="66" offset="005e" domain="userortestcode"><source><![CDATA[x < xSize]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[; ]]></source>
</chunk>
<chunk hits="63" offset="0058" domain="userortestcode"><source><![CDATA[x++]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[) ]]></source>
</chunk>
<chunk hits="21" offset="0025" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                    ]]></source>
</chunk>
<chunk hits="21" offset="0026" domain="userortestcode"><source><![CDATA[gofAutomaton[x - deltaX + xPos, y - deltaY + yPos] = pattern[2 + x + y * xSize];]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="63" offset="0057" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="0069" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
        ]]></source>
</chunk>
<chunk hits="1" offset="007b" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[

        /// <summary>
        /// A collection of interesting patterns for Game of Life.
        /// To add them to your cellular automaton use the AddGofPattern method.
        /// </summary>
        public enum GofPattern {
            Blinker,
            Toad,
            Beacon,
            Pulsar,
            Block,
            Beehive,
            Loaf,
            Boat,
            Glider,
            LightweightSpaceship,
            RPentomino,
            Diehard,
            Acorn,
            InfiniteGrowth1,
            InfiniteGrowth2,
            InfiniteGrowth3,
            GosperGliderGun
        }

// Oscillator Patterns:
        public static readonly int[] Blinker = new[] {
                                                         // Dimensions
                                                         3, 1,
                                                         // Pattern
                                                         1, 1, 1
                                                     };

        public static readonly int[] Toad = new[] {
                                                      // Dimensions                                
                                                      4, 2,
                                                      // Pattern
                                                      0, 1, 1, 1,
                                                      1, 1, 1, 0
                                                  };

        public static readonly int[] Beacon = new[] {
                                                        // Dimensions                                
                                                        4, 4,
                                                        // Pattern
                                                        1, 1, 0, 0,
                                                        1, 0, 0, 0,
                                                        0, 0, 0, 1,
                                                        0, 0, 1, 1,
                                                    };

        public static readonly int[] Pulsar = new[] {
                                                        // Dimensions
                                                        15, 15,
                                                        // Pattern
                                                        0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
                                                        0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
                                                        0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0,
                                                        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
                                                        1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1,
                                                        0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0,
                                                        0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0,
                                                        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
                                                        0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0,
                                                        0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0,
                                                        1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1,
                                                        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
                                                        0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0,
                                                        0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
                                                        0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0
                                                    };

// Still Lives Patterns:
        public static readonly int[] Block = new[] {
                                                       // Dimensions                                
                                                       2, 2,
                                                       // Pattern
                                                       1, 1,
                                                       1, 1
                                                   };

        public static readonly int[] Beehive = new[] {
                                                         // Dimensions                                
                                                         4, 3,
                                                         // Pattern
                                                         0, 1, 1, 0,
                                                         1, 0, 0, 1,
                                                         0, 1, 1, 0
                                                     };

        public static readonly int[] Loaf = new[] {
                                                      // Dimensions                                
                                                      4, 4,
                                                      // Pattern
                                                      0, 1, 1, 0,
                                                      1, 0, 0, 1,
                                                      0, 1, 0, 1,
                                                      0, 0, 1, 0,
                                                  };

        public static readonly int[] Boat = new[] {
                                                      // Dimensions                                
                                                      3, 3,
                                                      // Pattern
                                                      1, 1, 0,
                                                      1, 0, 1,
                                                      0, 1, 0,
                                                  };

// Spacehip Patterns:
        public static readonly int[] Glider = new[] {
                                                        // Dimensions                                
                                                        3, 3,
                                                        // Pattern
                                                        0, 1, 0,
                                                        0, 0, 1,
                                                        1, 1, 1,
                                                    };

        public static readonly int[] LightweightSpaceship = new[] {
                                                                      // Dimensions                                
                                                                      5, 4,
                                                                      // Pattern
                                                                      1, 0, 0, 1, 0,
                                                                      0, 0, 0, 0, 1,
                                                                      1, 0, 0, 0, 1,
                                                                      0, 1, 1, 1, 1
                                                                  };

// Methuselah Patterns - can evolve for a long time before stabilizing
        /// <summary>
        /// Methuselah Pattern - can evolve for a long time before stabilizing.
        /// </summary>
        public static readonly int[] RPentomino = new[] {
                                                            // Dimensions                                
                                                            4, 4,
                                                            // Pattern
                                                            0, 1, 1, 0,
                                                            1, 0, 0, 1,
                                                            0, 1, 0, 1,
                                                            0, 0, 1, 0,
                                                        };

        /// <summary>
        /// Methuselah Pattern - can evolve for a long time before stabilizing.
        /// This one disappears after 130 generations
        /// </summary>
        public static readonly int[] Diehard = new[] {
                                                         // Dimensions                                
                                                         8, 3,
                                                         // Pattern
                                                         0, 0, 0, 0, 0, 0, 1, 0,
                                                         1, 1, 0, 0, 0, 0, 0, 0,
                                                         0, 1, 0, 0, 0, 1, 1, 1,
                                                     };

        /// <summary>
        /// Methuselah Pattern - can evolve for a long time before stabilizing.
        /// This one disappears after 130 generations
        /// </summary>
        public static readonly int[] Acorn = new[] {
                                                       // Dimensions                                
                                                       7, 3,
                                                       // Pattern
                                                       0, 1, 0, 0, 0, 0, 1,
                                                       0, 0, 0, 1, 0, 0, 0,
                                                       1, 1, 0, 0, 1, 1, 1
                                                   };

// Infinite Growth Patterns:
        /// <summary>
        /// Infinite Growth Pattern - with only 10 live cell (which proven to be mnimal)
        /// </summary>
        public static readonly int[] InfiniteGrowth1 = new[] {
                                                                 // Dimensions                                
                                                                 8, 6,
                                                                 // Pattern
                                                                 0, 0, 0, 0, 0, 0, 1, 0,
                                                                 0, 0, 0, 0, 1, 0, 1, 1,
                                                                 0, 0, 0, 0, 1, 0, 1, 0,
                                                                 0, 0, 0, 0, 1, 0, 0, 0,
                                                                 0, 0, 1, 0, 0, 0, 0, 0,
                                                                 1, 0, 1, 0, 0, 0, 0, 0
                                                             };

        /// <summary>
        /// Infinite Growth Pattern - from a mere 5x5 pattern
        /// </summary>
        public static readonly int[] InfiniteGrowth2 = new[] {
                                                                 // Dimensions                                
                                                                 5, 4,
                                                                 // Pattern
                                                                 1, 1, 1, 0, 1,
                                                                 1, 0, 0, 0, 0,
                                                                 0, 0, 0, 1, 1,
                                                                 0, 1, 1, 0, 1,
                                                                 1, 0, 1, 0, 1
                                                             };

        /// <summary>
        /// Infinite Growth Pattern - only one cell high
        /// </summary>
        public static readonly int[] InfiniteGrowth3 =
            new[] {
                      // Dimensions                                
                      39, 1,
                      // Pattern
                      1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1
                      , 1, 0, 1, 1, 1, 1, 1
                  };

        /// <summary>
        /// The World's first Infinite Growth Pattern - Gosper Glider Gun.
        /// Developed at MIT in 1970 by a team lead by Bill Gosper.
        /// Proved for the first time that infinite growth is possbile in Game of Life.
        /// ...They won a $50 prize from John Conway (the inventor of Game of Life (and apparently a cheapskate?).
        /// </summary>
        public static readonly int[] GosperGliderGun =
            new[] {
                      // Dimensions                                
                      36, 9,
                      // Pattern
                      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0
                      , 0, 0, 0, 0,
                      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0
                      , 0, 0, 0, 0,
                      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
                      , 0, 0, 1, 1,
                      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
                      , 0, 0, 1, 1,
                      1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
                      , 0, 0, 0, 0,
                      1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0
                      , 0, 0, 0, 0,
                      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0
                      , 0, 0, 0, 0,
                      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
                      , 0, 0, 0, 0,
                      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
                      , 0, 0, 0, 0,
                  };

        private static readonly int[][] Patterns = new[] {
                                                             Blinker,
                                                             Toad,
                                                             Beacon,
                                                             Pulsar,
                                                             Block,
                                                             Beehive,
                                                             Loaf,
                                                             Boat,
                                                             Glider,
                                                             LightweightSpaceship,
                                                             RPentomino,
                                                             Diehard,
                                                             Acorn,
                                                             InfiniteGrowth1,
                                                             InfiniteGrowth2,
                                                             InfiniteGrowth3,
                                                             GosperGliderGun
                                                         };
    }
}]]></source>
</chunk>
</document>
<document src="C:\Users\Anders\Documents\automatones\Visual Studio\AutomaTones\AutomaTones\Model\Automaton Model\Cellular Automaton.cs" renderPrefix="s14"><chunk hits="-1" domain="unknown"><source><![CDATA[using System;
using System.Collections.Generic;
using System.Diagnostics.Contracts;
using System.Linq;
using Microsoft.Pex.Framework;

namespace AutomaTones.Model.Automaton_Model {
    /// <summary>
    ///   A cellular automaton consisting of an N-dimensional grid of cells.
    ///   Every new generation each cell gets a given state defined by one or more rules.
    ///   These rules consider a predefined set of neighbouring cells and hence decide a cells new state.
    ///   States are always represented using integers (discrete values).
    ///   States can be set and read via an indexer, eg. ca[0, 1] = 1;<br></br><br></br>
    ///   NOTE: Ideally this would be implemented using generics so states could also be decimals.
    ///   But due to C#'s lack of type constraint options on value types - this was omitted.<br></br><br></br>
    ///   This implementation is designed to allow a high degree of flexibility in the use of cellular automata.
    ///   Its N-dimensional and each cell may have its own state space and rule(s). Rules can use different
    ///   neighbourhoods which they process with their RuleDelegate - which again may use other delegates.
    ///   Thus this flexibility may make the overall semantics a little confusing at first.
    ///   However, one can setup a simple CA where all cells use the same space, rule and neighbourhood 
    ///   by simply using one of the constructors.
    /// </summary>
    /// <author>Anders Øland / anoe@itu.dk</author>
    [PexClass]
    [Serializable]
    public class CellularAutomaton : ICloneable {
        public uint Dimensions { get; private set; }
        public uint DimensionSize { get; private set; }
        public uint Generation { get; private set; }

        // _grid hold the cells of CA's the N-dimensional grid
        protected Cell[] Grid;

        public Rule DefaultRule { get; private set; }

        /// <summary>
        ///   Construct a new Cellular Automaton
        /// </summary>
        /// <param name = "dimensions">Number of dimensions</param>
        /// <param name = "dimensionSize">Size of the dimensions</param>
        /// <param name = "defaultRule">The default rule for all cells</param>
        /// <param name = "stateMin">default = 0</param>
        /// <param name = "stateMax">default = 1</param>
        /// <param name = "stateInit"></param>
//        [PexMethod]
        ]]></source>
</chunk>
<method name=".ctor" namespace="AutomaTones.Model.Automaton_Model" type="AutomaTones.Model.Automaton_Model.CellularAutomaton" typeName="CellularAutomaton" token="600013a" module="AutomaTones.exe"><hits><hit index="0" value="1"/>
<hit index="1" value="1"/>
<hit index="2" value="1"/>
<hit index="3" value="1"/>
<hit index="4" value="1"/>
<hit index="5" value="1"/>
</hits>
<coverage domain="userortestcode" unit="block" covered="3" total="3" coveredRatio="1"/>
</method>
<chunk hits="1" offset="0000" domain="userortestcode"><source><![CDATA[public CellularAutomaton(uint dimensions, uint dimensionSize, Rule defaultRule, int stateMin = 0,
                                 int stateMax = 1, int stateInit = 0)]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="1" offset="0007" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            Contract.Requires(0 < dimensions);
            Contract.Requires(0 < dimensionSize);
            Contract.Requires(null != defaultRule);
            Contract.Requires(dimensions == defaultRule.Dimensions);
            Contract.Requires(stateMin < stateMax);
            Contract.Requires(stateMin <= stateInit && stateMax >= stateInit);
            ]]></source>
</chunk>
<chunk hits="1" offset="0008" domain="userortestcode"><source><![CDATA[Init(dimensions, dimensionSize, defaultRule, stateMin, stateMax, stateInit);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
        ]]></source>
</chunk>
<chunk hits="1" offset="0018" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[

        private void Init(uint dimensions, uint dimensionSize, Rule defaultRule,
                          int stateMin = 0, int stateMax = 1, int stateInit = 0) ]]></source>
</chunk>
<method name="Init" namespace="AutomaTones.Model.Automaton_Model" type="AutomaTones.Model.Automaton_Model.CellularAutomaton" typeName="CellularAutomaton" token="600013b" module="AutomaTones.exe"><hits><hit index="0" value="1"/>
<hit index="1" value="1"/>
<hit index="2" value="1"/>
<hit index="3" value="1"/>
<hit index="4" value="1"/>
<hit index="5" value="1"/>
<hit index="6" value="1"/>
<hit index="7" value="1"/>
<hit index="8" value="1"/>
<hit index="9" value="1"/>
<hit index="10" value="1"/>
<hit index="11" value="1"/>
<hit index="12" value="1"/>
<hit index="14" value="1"/>
<hit index="15" value="1"/>
<hit index="16" value="1"/>
<hit index="17" value="1"/>
<hit index="18" value="100"/>
<hit index="19" value="100"/>
<hit index="21" value="100"/>
<hit index="22" value="100"/>
<hit index="23" value="100"/>
<hit index="24" value="100"/>
<hit index="25" value="100"/>
<hit index="26" value="101"/>
<hit index="27" value="101"/>
<hit index="28" value="1"/>
<hit index="29" value="1"/>
<hit index="30" value="1"/>
<hit index="31" value="100"/>
<hit index="35" value="1"/>
</hits>
<tags><tag offset="002a">call to external method Math.Pow(Double, Double)</tag>
<tag offset="0030">call to uninstrumented method __LimitationsHelper.floating_point_conversion(), call to uninstrumented method __LimitationsHelper.floating_point_multiplication(), call to uninstrumented method __LimitationsHelper.floating_point_conversion(), call to uninstrumented method __LimitationsHelper.floating_point_multiplication(), call to uninstrumented method __LimitationsHelper.floating_point_conversion(), call to uninstrumented method __LimitationsHelper.floating_point_conversion(), call to uninstrumented method __LimitationsHelper.floating_point_multiplication(), call to uninstrumented method __LimitationsHelper.floating_point_multiplication()</tag>
</tags>
<coverage domain="userortestcode" unit="block" covered="11" total="11" coveredRatio="1"/>
</method>
<chunk hits="1" offset="0000" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            Contract.Requires(0 < dimensions && 0 < dimensionSize);
            Contract.Requires(dimensions == defaultRule.Dimensions);
            Contract.Requires(stateMin < stateMax);
            Contract.Requires(stateMin <= stateInit && stateMax >= stateInit);
            ]]></source>
</chunk>
<chunk hits="1" offset="0001" domain="userortestcode"><source><![CDATA[Generation = 0;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="1" offset="0009" domain="userortestcode"><source><![CDATA[Dimensions = dimensions;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="1" offset="0011" domain="userortestcode"><source><![CDATA[DimensionSize = dimensionSize;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="1" offset="0019" domain="userortestcode" tag="true"><tooltip><![CDATA[call to external method Math.Pow(Double, Double), call to uninstrumented method __LimitationsHelper.floating_point_conversion(), call to uninstrumented method __LimitationsHelper.floating_point_multiplication(), call to uninstrumented method __LimitationsHelper.floating_point_conversion(), call to uninstrumented method __LimitationsHelper.floating_point_multiplication(), call to uninstrumented method __LimitationsHelper.floating_point_conversion(), call to uninstrumented method __LimitationsHelper.floating_point_conversion(), call to uninstrumented method __LimitationsHelper.floating_point_multiplication(), call to uninstrumented method __LimitationsHelper.floating_point_multiplication()]]></tooltip>
<source><![CDATA[Grid = new Cell[(int)Math.Pow(DimensionSize, Dimensions)];]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            for (]]></source>
</chunk>
<chunk hits="2" offset="003a" domain="userortestcode"><source><![CDATA[int i = 0;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="402" offset="0058" domain="userortestcode"><source><![CDATA[i < Grid.Length]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[; ]]></source>
</chunk>
<chunk hits="400" offset="0054" domain="userortestcode"><source><![CDATA[i++]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[) ]]></source>
</chunk>
<chunk hits="100" offset="003e" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="100" offset="003f" domain="userortestcode"><source><![CDATA[Grid[i] = new Cell(defaultRule, stateMin, stateMax, stateInit);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="400" offset="0053" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="1" offset="0067" domain="userortestcode"><source><![CDATA[DefaultRule = defaultRule;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
        ]]></source>
</chunk>
<chunk hits="1" offset="006f" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[

        /// <summary>
        ///   Finds the right cell in the N-dimensional grid in the one dimensional array holding the cells
        /// </summary>
        [PexMethod]
        [Pure] // Tagged as pure since its being called from other contracts which I dont want to loosen 
        protected internal virtual Cell GetCell(params int[] coord) ]]></source>
</chunk>
<method name="GetCell" namespace="AutomaTones.Model.Automaton_Model" type="AutomaTones.Model.Automaton_Model.CellularAutomaton" typeName="CellularAutomaton" token="600013c" module="AutomaTones.exe"><hits><hit index="0" value="58"/>
<hit index="1" value="58"/>
<hit index="2" value="58"/>
<hit index="3" value="58"/>
<hit index="4" value="58"/>
<hit index="5" value="58"/>
<hit index="7" value="1"/>
</hits>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<chunk hits="58" offset="0000" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            Contract.Requires(null != coord);
            Contract.Requires(coord.Length == Dimensions);
            Contract.Ensures(Contract.Result<Cell>() != null);
            ]]></source>
</chunk>
<chunk hits="58" offset="0001" domain="userortestcode"><source><![CDATA[uint index = GetIndex(coord);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="58" offset="0009" domain="userortestcode"><source><![CDATA[return Grid[index];]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
        ]]></source>
</chunk>
<chunk hits="116" offset="0015" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[

        /// <summary>
        ///   Translates a coordinate into an index number pointing to the corresponing location in the grid array.
        ///   Coordinates exceeding the bounds of the grid are 'wrapped around', 
        ///   thus giving the grid a so-called torus shape.
        /// </summary>
        [Pure]
        protected uint GetIndex(int[] coord) ]]></source>
</chunk>
<method name="GetIndex" namespace="AutomaTones.Model.Automaton_Model" type="AutomaTones.Model.Automaton_Model.CellularAutomaton" typeName="CellularAutomaton" token="600013d" module="AutomaTones.exe"><hits><hit index="0" value="58"/>
<hit index="1" value="58"/>
<hit index="2" value="58"/>
<hit index="3" value="58"/>
<hit index="4" value="58"/>
<hit index="5" value="58"/>
<hit index="6" value="58"/>
<hit index="7" value="58"/>
<hit index="8" value="58"/>
<hit index="9" value="58"/>
<hit index="10" value="58"/>
<hit index="11" value="58"/>
<hit index="15" value="58"/>
<hit index="16" value="58"/>
<hit index="17" value="58"/>
<hit index="18" value="58"/>
<hit index="19" value="58"/>
<hit index="20" value="58"/>
<hit index="21" value="116"/>
<hit index="22" value="116"/>
<hit index="23" value="58"/>
<hit index="25" value="58"/>
<hit index="26" value="58"/>
<hit index="28" value="1"/>
<hit index="31" value="1"/>
</hits>
<coverage domain="userortestcode" unit="block" covered="11" total="14" coveredRatio="0.7857142857142857"/>
</method>
<chunk hits="58" offset="0000" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            Contract.Requires(null != coord);
            Contract.Requires(0 < DimensionSize && 0 < Dimensions);
            Contract.Requires(coord.Length == Dimensions);
            Contract.Ensures((uint)Math.Pow(DimensionSize, Dimensions) > Contract.Result<uint>());
            ]]></source>
</chunk>
<chunk hits="58" offset="0001" domain="userortestcode"><source><![CDATA[var index = 0;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            for (]]></source>
</chunk>
<chunk hits="58" offset="0003" domain="userortestcode"><source><![CDATA[int i = 1;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="116" offset="0060" domain="userortestcode"><source><![CDATA[i <= Dimensions]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[; ]]></source>
</chunk>
<chunk hits="58" offset="005c" domain="userortestcode"><source><![CDATA[i++]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[) ]]></source>
</chunk>
<chunk hits="58" offset="0007" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                // Loop invariant
                ]]></source>
</chunk>
<chunk hits="58" offset="0008" domain="userortestcode"><source><![CDATA[Contract.Assert(0 <= index && Grid.Length > index);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                // Make sure coordinates which exceed the bounds of any dimension are 'wrapped around'
                ]]></source>
</chunk>
<chunk hits="58" offset="0020" domain="userortestcode"><source><![CDATA[int c = coord[i - 1] % (int)DimensionSize;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="116" offset="002d" domain="userortestcode"><source><![CDATA[c = 0 <= c ? c : c + (int)DimensionSize;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                // Sum the the effect of each coordinate to find the correct position in the grid array
                ]]></source>
</chunk>
<chunk hits="58" offset="003d" domain="userortestcode"><source><![CDATA[index += c * (int)Math.Pow(DimensionSize, Dimensions - i);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="58" offset="005b" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="58" offset="0074" domain="userortestcode"><source><![CDATA[return (uint)index;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
        ]]></source>
</chunk>
<chunk hits="58" offset="0078" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[

        /// <summary>
        ///   Translates an index number into a coordinate.
        /// </summary>
        /// <param name = "index"></param>
        /// <returns></returns>
        private int[] GetCoordinate(uint index) {
            Contract.Requires(index < Grid.Length);
            Contract.Ensures(Dimensions == Contract.Result<int[]>().Length);
            // As long as the grid is rectangular (not jagged) this is equivalent to converting
            // index from base 10 to base DimensionSize.
            return Tools.Math.DecimalToBase(index, DimensionSize, Dimensions).Reverse().ToArray();
        }

        /// <summary>
        ///   Returns the State Object of the cell.
        /// </summary>
        /// <param name = "coord"></param>
        /// <returns>The state of the cell with the given coordinates</returns>
        public State GetCellState(params int[] coord) {
            Contract.Requires(coord.Length == Dimensions);
            Contract.Ensures(Contract.Result<State>() != null);
            return GetCell(coord).State;
        }

        /// <summary>
        ///   Returns the rule of the cell with the given coordinates.
        ///   Note that one rule may consist of many rules.
        /// </summary>
        /// <param name = "coord">Coordinates</param>
        /// <returns>IRule</returns>
        [PexMethod]
        public Rule GetCellRule(params int[] coord) {
            Contract.Requires(coord.Length == Dimensions);
            Contract.Ensures(Contract.Result<Rule>() != null);
            return GetCell(coord).Rule;
        }

        /// <summary>
        ///   Sets the rule of the cell with the given coordinates.
        /// </summary>
        /// <param name = "rule"></param>
        /// <param name = "coord">Coordinates</param>
        public void SetCellRule(Rule rule, params int[] coord) {
            Contract.Requires(coord.Length == Dimensions);
            Contract.Requires(rule != null);
            GetCell(coord).Rule = rule;
        }

        /// <summary>
        ///   Add a trigger to the cell with the given coordinates.
        /// </summary>
        /// <param name = "trigger">Trigger</param>
        /// <param name = "coord">int[]</param>
        public void AddTrigger(Trigger trigger, params int[] coord) {
            Contract.Requires(coord.Length == Dimensions);
            Contract.Requires(trigger != null);
            Contract.Ensures(GetCell(coord).Triggers.Contains(trigger));
            GetCell(coord).Triggers.Add(trigger);
        }

        /// <summary>
        ///   Removes the trigger from the cell with the given coodinates.
        /// </summary>
        /// <param name = "trigger">Trigger</param>
        /// <param name = "coord">coordinates</param>
        public void RemoveTrigger(Trigger trigger, params int[] coord) {
            Contract.Requires(coord.Length == Dimensions);
            Contract.Requires(trigger != null);
            Contract.Ensures(!GetCell(coord).Triggers.Contains(trigger));
            GetCell(coord).Triggers.Remove(trigger);
        }

        /// <summary>
        ///   Evolve this Cellular Automaton - move one generation forward
        ///   by applying the rule(s) to the cells.
        /// </summary>
        public virtual void Evolve() {
            Contract.Ensures(Generation == Contract.OldValue(Generation) + 1);
            Contract.Ensures(Contract.ForAll(0, Grid.Length,
                                             i => Grid[i].State.CurrentState == Grid[i].State.NextState));
            // Calculate new states from current states
            for (uint index = 0; index < Grid.Length; index++)
                Grid[index].State.NextState = Grid[index].Rule.ApplyRule(GetCoordinate(index), this);

            // Commit new states
            foreach (Cell cell in Grid) cell.State.CurrentState = cell.State.NextState;
            Generation++;
        }

        /// <summary>
        ///   Indexer for the CA's grid of cells.
        /// </summary>
        /// <param name = "coord">coordinate</param>
        /// <returns>Cell at the given coordinate</returns>
        public virtual int this[params int[] coord] {
            get {
                Contract.Requires(coord.Length == Dimensions);
                return GetCell(coord).State.CurrentState;
            }
            set ]]></source>
</chunk>
<method name="set_Item" namespace="AutomaTones.Model.Automaton_Model" type="AutomaTones.Model.Automaton_Model.CellularAutomaton" typeName="CellularAutomaton" token="6000146" module="AutomaTones.exe"><hits><hit index="0" value="21"/>
<hit index="1" value="21"/>
<hit index="2" value="21"/>
<hit index="3" value="21"/>
<hit index="4" value="21"/>
<hit index="5" value="21"/>
<hit index="6" value="21"/>
<hit index="7" value="21"/>
<hit index="8" value="21"/>
<hit index="9" value="42"/>
<hit index="10" value="21"/>
<hit index="11" value="21"/>
<hit index="12" value="21"/>
<hit index="13" value="42"/>
<hit index="15" value="1"/>
<hit index="16" value="1"/>
</hits>
<coverage domain="userortestcode" unit="block" covered="4" total="4" coveredRatio="1"/>
</method>
<chunk hits="21" offset="0000" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                Contract.Requires(coord.Length == Dimensions);
                Contract.Ensures(GetCell(coord).State.CurrentState.Equals(value));
                ]]></source>
</chunk>
<chunk hits="21" offset="0001" domain="userortestcode"><source><![CDATA[Grid[GetIndex(coord)].State.CurrentState = value;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="63" offset="001c" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
        }

        /// <summary>
        ///   For iterating over the entire grid.
        /// </summary>
        /// <returns></returns>
        [Pure]
        public IEnumerable<int> GridEnumerator() {
            return Grid.Select(cell => cell.State.CurrentState);
        }

        /// <summary>
        /// Returns a copy of the cellular automatons current grid of cells.
        /// </summary>
        /// <returns></returns>
        public Cell[] CopyOfGrid() {
            Contract.Ensures(Contract.ForAll(0, Grid.Length, i => Grid[i] == Contract.Result<Cell[]>()[i]));
            Cell[] copy = new Cell[Grid.Length];
            for (int i = 0; i < Grid.Length; i++) {
                Cell c = Grid[i];
                copy[i] = new Cell(c.Rule, c.State.SpaceMin, c.State.SpaceMax, c.State.CurrentState);
            }
            return copy;
        }

        [ContractInvariantMethod]
        // ReSharper disable UnusedMember.Local
        private void ObjInvar() {
            // ReSharper restore UnusedMember.Local
            Contract.Invariant(0 <= Generation);
            Contract.Invariant(0 < DimensionSize);
            Contract.Invariant(0 < Dimensions);
            Contract.Invariant(Grid.Length == (int)Math.Pow((double)DimensionSize, (double)Dimensions));
            Contract.Invariant(Contract.ForAll(Grid, c => null != c));
            Contract.Invariant(null != DefaultRule);
        }

        public override
            string ToString() {
            String s = "", t = "";
            foreach (int i in GridEnumerator()) {
                s += i;
                if (s.Length < 1 * DimensionSize) continue;
                t += s + "\n";
                s = "";
            }
            return t;
        }

        public object Clone() {
            return new CellularAutomaton(Dimensions, DimensionSize, DefaultRule) {
                Generation = Generation,
                Grid = CopyOfGrid()
            };
        }
    }

    /// <author>Anders Øland / anoe@itu.dk</author>
    /// <summary>
    /// A specialized Cellular Automaton for Wolfram one-dimensional automata.
    /// The grid does not have a torus shape (coordinates are not 'wrapper around'), instead the actual size of the grid is in fact
    /// larger than the specified size - so borderline cells can be processed.
    /// </summary>
    public class WolframAutomaton : CellularAutomaton {
        public uint ViewedSize { get; private set; }
        private readonly Cell[,] _viewedGrid;

        /// <summary>
        /// Create a new WolframAutomaton.
        /// </summary>
        /// <param name="wolframRule"></param>
        /// <param name="stateSpace">size of the state space, 2 = binary</param>
        /// <param name="viewedSize">size of the rectangular grid displaying the CA</param>
        /// <param name="actualSize">actual size of the CA in memmory</param>
        ]]></source>
</chunk>
<method name=".ctor" namespace="AutomaTones.Model.Automaton_Model" type="AutomaTones.Model.Automaton_Model.WolframAutomaton" typeName="WolframAutomaton" token="600014f" module="AutomaTones.exe"><hits><hit index="0" value="1"/>
<hit index="1" value="1"/>
<hit index="2" value="1"/>
<hit index="3" value="1"/>
<hit index="4" value="1"/>
<hit index="5" value="1"/>
<hit index="6" value="1"/>
<hit index="7" value="1"/>
<hit index="8" value="1"/>
<hit index="9" value="1"/>
<hit index="11" value="1"/>
<hit index="12" value="1"/>
<hit index="13" value="1"/>
<hit index="14" value="1"/>
<hit index="16" value="1"/>
<hit index="17" value="1"/>
<hit index="18" value="1"/>
<hit index="19" value="1"/>
<hit index="20" value="1"/>
<hit index="21" value="1"/>
<hit index="22" value="1"/>
<hit index="23" value="1"/>
<hit index="24" value="1"/>
<hit index="25" value="1"/>
<hit index="26" value="1"/>
<hit index="27" value="2"/>
<hit index="28" value="1"/>
<hit index="29" value="1"/>
<hit index="30" value="1"/>
<hit index="31" value="2"/>
<hit index="32" value="1"/>
</hits>
<coverage domain="userortestcode" unit="block" covered="8" total="12" coveredRatio="0.66666666666666663"/>
</method>
<chunk hits="1" offset="0000" domain="userortestcode"><source><![CDATA[public WolframAutomaton(Rule wolframRule, int stateSpace, uint viewedSize = 64u, uint actualSize = 100u)
            : base(1, actualSize, wolframRule, 0, stateSpace - 1)]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="1" offset="0010" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            Contract.Requires(3 <= viewedSize);
            Contract.Requires(viewedSize <= actualSize);
            Contract.Requires(null != wolframRule);
            Contract.Requires(1 < stateSpace);
            ]]></source>
</chunk>
<chunk hits="1" offset="0011" domain="userortestcode"><source><![CDATA[ViewedSize = viewedSize;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="1" offset="0019" domain="userortestcode"><source><![CDATA[_viewedGrid = new Cell[ViewedSize, ViewedSize];]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="2" offset="0032" domain="userortestcode"><source><![CDATA[base.GetCell((int)(actualSize / 2)).State.CurrentState = 1;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="0053" domain="userortestcode"><source><![CDATA[UpdateViewedGrid();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            for (]]></source>
</chunk>
<chunk hits="0" offset="005a" domain="userortestcode"><source><![CDATA[int i = 0;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="0" offset="0069" domain="userortestcode"><source><![CDATA[i < viewedSize]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[; ]]></source>
</chunk>
<chunk hits="0" offset="0065" domain="userortestcode"><source><![CDATA[i++]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[) ]]></source>
</chunk>
<chunk hits="0" offset="005e" domain="userortestcode"><source><![CDATA[Evolve();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
        ]]></source>
</chunk>
<chunk hits="0" offset="0073" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[

        /// <summary>
        ///   Returns a cell from the viewed two-dimensional grid.
        /// </summary>
        protected internal new Cell GetCell(params int[] coord) {
            Contract.Requires(coord.Length == 2);
            Contract.Ensures(Contract.Result<Cell>() != null);
            return _viewedGrid[coord[0], coord[1]];
        }

        public override sealed void Evolve() {
            base.Evolve();
            UpdateViewedGrid();
        }

        private void UpdateViewedGrid() ]]></source>
</chunk>
<method name="UpdateViewedGrid" namespace="AutomaTones.Model.Automaton_Model" type="AutomaTones.Model.Automaton_Model.WolframAutomaton" typeName="WolframAutomaton" token="6000152" module="AutomaTones.exe"><hits><hit index="0" value="1"/>
<hit index="1" value="3991"/>
<hit index="2" value="3991"/>
<hit index="3" value="3991"/>
<hit index="4" value="3991"/>
<hit index="5" value="3991"/>
<hit index="6" value="3991"/>
<hit index="7" value="3991"/>
<hit index="8" value="3991"/>
<hit index="9" value="3991"/>
<hit index="10" value="4049"/>
<hit index="11" value="4049"/>
<hit index="12" value="57"/>
<hit index="13" value="57"/>
<hit index="14" value="57"/>
<hit index="15" value="57"/>
<hit index="16" value="57"/>
<hit index="17" value="57"/>
<hit index="19" value="57"/>
<hit index="20" value="57"/>
<hit index="21" value="57"/>
<hit index="22" value="57"/>
<hit index="23" value="57"/>
<hit index="24" value="57"/>
<hit index="25" value="57"/>
<hit index="26" value="57"/>
<hit index="27" value="57"/>
<hit index="28" value="57"/>
<hit index="29" value="57"/>
<hit index="30" value="57"/>
<hit index="31" value="57"/>
<hit index="32" value="57"/>
<hit index="33" value="57"/>
<hit index="34" value="57"/>
<hit index="35" value="57"/>
<hit index="36" value="57"/>
<hit index="37" value="58"/>
<hit index="38" value="58"/>
<hit index="40" value="3991"/>
<hit index="41" value="58"/>
</hits>
<coverage domain="userortestcode" unit="block" covered="10" total="11" coveredRatio="0.90909090909090906"/>
</method>
<chunk hits="1" offset="0000" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            Contract.Requires(ViewedSize <= DimensionSize);
            Contract.Requires(null != _viewedGrid);
            Contract.Requires(null != Grid);
            for (]]></source>
</chunk>
<chunk hits="1" offset="0001" domain="userortestcode"><source><![CDATA[int y = 0;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="172" offset="0080" domain="userortestcode"><source><![CDATA[y < ViewedSize]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[; ]]></source>
</chunk>
<chunk hits="171" offset="007c" domain="userortestcode"><source><![CDATA[y++]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[) ]]></source>
</chunk>
<chunk hits="58" offset="0005" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                // Shift left
                for (]]></source>
</chunk>
<chunk hits="58" offset="0006" domain="userortestcode"><source><![CDATA[int x = 0;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="12031" offset="002a" domain="userortestcode"><source><![CDATA[x < ViewedSize - 1]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[; ]]></source>
</chunk>
<chunk hits="11973" offset="0026" domain="userortestcode"><source><![CDATA[x++]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[) ]]></source>
</chunk>
<chunk hits="3991" offset="000a" domain="userortestcode"><source><![CDATA[_viewedGrid[x, y] = _viewedGrid[x + 1, y];]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                // Add new generation
                ]]></source>
</chunk>
<chunk hits="57" offset="003b" domain="userortestcode"><source><![CDATA[_viewedGrid[ViewedSize - 1, y] = base.GetCell((int)(ViewedSize / 2 - y + (int)DimensionSize / 2));]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="171" offset="007b" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
        ]]></source>
</chunk>
<chunk hits="0" offset="0092" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
    }
}]]></source>
</chunk>
</document>
<document src="C:\Users\Anders\Documents\automatones\Visual Studio\AutomaTones\AutomaTones\Model\Automaton Model\Cell.cs" renderPrefix="s15"><chunk hits="-1" domain="unknown"><source><![CDATA[using System;
using System.Collections.Generic;
using System.Diagnostics.Contracts;
using Microsoft.Pex.Framework;

namespace AutomaTones.Model.Automaton_Model {
    /// <summary>
    /// A cell with a given state decided by one or more rules.
    /// Multiple triggers can be attached to react to different states - by publishing events.
    /// </summary>
    /// <author>Anders Øland / anoe@itu.dk</author>
    [Serializable]
    public class Cell {
        /// <summary>
        /// The state of the cell.
        /// </summary>
        public State State { get; protected internal set; }
        
        /// <summary>
        /// The rule governing the state & evolution of this cell
        /// </summary>
        public Rule Rule { get; protected internal set; }
        
        ]]></source>
</chunk>
<method name=".ctor" namespace="AutomaTones.Model.Automaton_Model" type="AutomaTones.Model.Automaton_Model.Cell" typeName="Cell" token="6000009" module="AutomaTones.exe"><hits><hit index="0" value="100"/>
<hit index="1" value="100"/>
<hit index="3" value="100"/>
<hit index="4" value="100"/>
<hit index="5" value="100"/>
<hit index="6" value="100"/>
<hit index="7" value="100"/>
<hit index="8" value="100"/>
<hit index="9" value="100"/>
<hit index="10" value="100"/>
<hit index="12" value="100"/>
<hit index="13" value="100"/>
<hit index="14" value="100"/>
</hits>
<coverage domain="userortestcode" unit="block" covered="6" total="6" coveredRatio="1"/>
</method>
<chunk hits="100" offset="0000" domain="userortestcode"><source><![CDATA[private HashSet<Trigger> _triggers = new HashSet<Trigger>();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[

        /// <summary>
        /// The set of triggers for this cell. May be empty.
        /// </summary>
        public HashSet<Trigger> Triggers {
            get { return _triggers; }
            protected internal set {
                Contract.Requires(null != value);
                Contract.Requires(Contract.ForAll<Trigger>(value, v => null != v));
                Contract.Ensures(Triggers == value);
                _triggers = value;
            }
        }

        /// <summary>
        /// Add a trigger to this cell.
        /// </summary>
        /// <param name="trigger"></param>
        public void AddTrigger(Trigger trigger) {
            Contract.Requires(null != trigger);
            Contract.Ensures(Triggers.Contains(trigger));
            _triggers.Add(trigger);
        }

        /// <summary>
        /// Remove a trigger from this cell.
        /// </summary>
        /// <param name="trigger"></param>
        public void RemoveTrigger(Trigger trigger) {
            Contract.Requires(null != trigger);
            Contract.Ensures(!Triggers.Contains(trigger));
            _triggers.Remove(trigger);
        }

        ]]></source>
</chunk>
<chunk hits="200" offset="000b" domain="userortestcode"><source><![CDATA[public Cell(Rule rule, int stateMin = 0, int stateMax = 1, int stateInit = 0)]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="100" offset="0012" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            Contract.Requires(null != rule);
            Contract.Requires(stateMin < stateMax);
            Contract.Requires(stateMin <= stateInit && stateMax >= stateInit);
            Contract.Ensures(Rule.Equals(rule));
            Contract.Ensures(State.SpaceMin == stateMin && State.SpaceMax == stateMax && State.CurrentState == stateInit);
            ]]></source>
</chunk>
<chunk hits="100" offset="0013" domain="userortestcode"><source><![CDATA[Rule = rule;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="100" offset="001b" domain="userortestcode"><source><![CDATA[State = new State(stateMin, stateMax, stateInit);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
        ]]></source>
</chunk>
<chunk hits="100" offset="002b" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[

        [ContractInvariantMethod]
        private void ObjInvariant() {
            Contract.Invariant(null != State);
            Contract.Invariant(null != Rule);
        }
    }
}
]]></source>
</chunk>
</document>
<document src="C:\Users\Anders\Documents\automatones\Visual Studio\AutomaTones\AutomaTones\Model\Automaton Model\Rule.cs" renderPrefix="s16"><chunk hits="-1" domain="unknown"><source><![CDATA[using System;
using System.Collections.Generic;
using System.Diagnostics.Contracts;
using System.Linq;
using Microsoft.Pex.Framework;

namespace AutomaTones.Model.Automaton_Model {
    /// <author>Anders Øland / anoe@itu.dk</author>
    /// <summary>
    ///   A rule defining how a cell evolves.
    ///   The rule decides a cells next state based on the current state of its neighbours.
    ///   Each rule defines its own neighbourhood.
    ///   The processing is done by a RuleDelegate (which may be a multicast delegate).
    /// </summary>
    [PexClass]
    [Serializable]
    public class Rule {
        /// <summary>
        ///   The number of dimensions this rule work in; MUST match the dimensions of the automaton.
        /// </summary>
        protected internal uint Dimensions { get; private set; }

        /// <summary>
        ///   The delegate type used for the methods which perform the actual rule processing.
        /// </summary>
        /// <param name = "cell">The cell to be processed</param>
        /// <param name="statesOfNeighbours">The states of the cells neighbours</param>
        /// <param name="optional">optional parameters for specialized rules</param>
        /// <returns></returns>
        public delegate int RuleDelegate(
            Cell cell, ref IEnumerable<StateAtCoordinate> statesOfNeighbours, params int[] optional);

        /// <summary>
        ///   The concrete RuleDelagate used by this Rule to process the next state of a cell
        ///   based on the states of the cells in its neighbourghood.
        /// </summary>
        public RuleDelegate MyRuleDelegate { get; set; }

        ]]></source>
</chunk>
<method name=".ctor" namespace="AutomaTones.Model.Automaton_Model" type="AutomaTones.Model.Automaton_Model.Rule" typeName="Rule" token="60000a1" module="AutomaTones.exe"><hits><hit index="0" value="1"/>
<hit index="1" value="1"/>
<hit index="3" value="1"/>
<hit index="4" value="1"/>
<hit index="5" value="1"/>
<hit index="6" value="1"/>
<hit index="7" value="1"/>
<hit index="8" value="1"/>
<hit index="9" value="1"/>
<hit index="10" value="1"/>
<hit index="11" value="1"/>
</hits>
<coverage domain="userortestcode" unit="block" covered="5" total="5" coveredRatio="1"/>
</method>
<chunk hits="1" offset="0000" domain="userortestcode"><source><![CDATA[private List<Position> _neighbourhood = new List<Position>();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[

        /// <summary>
        ///   The coordinates of the neighbouring cells to be used when this rule is applied.
        ///   Subject cell is always [0 ,0] (in a 2-dim. grid.) and eg. the left neighbnour is [-1, 0]
        /// </summary>
        public List<Position> Neighbourhood {
            get { return _neighbourhood; }
            protected internal set {
                Contract.Requires(null != value);
                Contract.Requires(Contract.ForAll<Position>(value, n => Dimensions == n.Coord.Length));
                Contract.Ensures(Neighbourhood == value);
                _neighbourhood = value;
            }
        }

        /// <summary>
        ///   For storing coordinates of (neighbouring) cells.
        ///   Explicit conversions to and from int[] are supported.
        /// </summary>
        [Serializable]
        public struct Position {
            private int[] _coord;

            public int[] Coord {
                get { return _coord; }
                internal set ]]></source>
</chunk>
<method name="set_Coord" namespace="AutomaTones.Model.Automaton_Model" type="AutomaTones.Model.Automaton_Model.Rule+Position" typeName="Rule+Position" token="60000ac" module="AutomaTones.exe"><hits><hit index="0" value="8"/>
<hit index="1" value="8"/>
<hit index="2" value="8"/>
</hits>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<chunk hits="8" offset="0000" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                    Contract.Requires(null != value);
                    Contract.Requires(0 < value.Length);
                    Contract.Ensures(_coord.Equals(value));
                    ]]></source>
</chunk>
<chunk hits="8" offset="0001" domain="userortestcode"><source><![CDATA[_coord = value;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="16" offset="0008" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            }

            public Position(params int[] coord)
                : this() {
                Contract.Requires(null != coord);
                Contract.Requires(0 < coord.Length);
                Contract.Ensures(null != coord & this.Coord == coord);
                Coord = coord;
            }

            // explicit conversion from Position to int[], useful for clients.
            public static explicit operator int[](Position p) {
                Contract.Requires(null != p.Coord);
                Contract.Ensures(Contract.ForAll(0, p.Coord.Length,
                                                 i => p.Coord[i] == Contract.Result<int[]>()[i]));
                return p.Coord.ToArray();
            }

            // explicit conversion from int[] to Position, useful for clients.
            public static explicit operator Position(int[] c) ]]></source>
</chunk>
<method name="op_Explicit" namespace="AutomaTones.Model.Automaton_Model" type="AutomaTones.Model.Automaton_Model.Rule+Position" typeName="Rule+Position" token="60000af" module="AutomaTones.exe"><hits><hit index="0" value="8"/>
<hit index="1" value="8"/>
<hit index="2" value="8"/>
<hit index="3" value="8"/>
<hit index="4" value="8"/>
<hit index="5" value="8"/>
</hits>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<chunk hits="8" offset="0000" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                Contract.Requires(null != c);
                Contract.Requires(0 < c.Length);
                Contract.Ensures(Contract.ForAll(0, c.Length,
                                                 i => c[i] == Contract.Result<Position>().Coord[i]));
                ]]></source>
</chunk>
<chunk hits="8" offset="0001" domain="userortestcode"><source><![CDATA[return new Position { Coord = (int[])c.Clone() };]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="8" offset="0020" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[

            /// <summary>
            /// Pracical + operator when deciding actual coordinates of neighbours 
            /// (relative to the subject/center cell) 
            /// </summary>
            /// <param name="left"></param>
            /// <param name="right"></param>
            /// <returns></returns>
            public static int[] operator +(Position left, int[] right) {
                Contract.Requires(left.Coord.Length == right.Length);
                int[] result = new int[left.Coord.Length];
                for (int i = 0; i < right.Length; i++)
                    result[i] = right[i] + left.Coord[i];
                return result;
            }

            /// <summary>
            ///   Indicates whether this instance and a specified object are equal.
            ///   Accepts int[] as well as Position.
            /// </summary>
            /// <returns>
            ///   true if <paramref name = "obj" /> is either Position or int[] and represent the same coordinate; otherwise, false.
            /// </returns>
            /// <param name = "obj">Another object to compare to. </param>
            /// <filterpriority>2</filterpriority>
            public override bool Equals(object obj) {
                Contract.Requires(null != obj);
                Contract.Requires((obj is Position & ((Position)obj).Coord.Length > 0 || (obj is int[] & ((int[])obj).Length > 0)));
                if (!(obj is Position || obj is int[])) return false;
                Position p;
                if (obj is Position) p = (Position)obj;
                else {
                    int[] tmp = (int[])obj;
                    p = (Position)tmp;
                }
                return p.Coord.SequenceEqual(_coord);
            }

            public override int GetHashCode() {
                return (_coord != null ? _coord.GetHashCode() : 0);
            }
        }

        /// <summary>
        /// A state associated with a given coordinate. Intended for use with neighbours and rules.
        /// Thus the coordinate must be relative to point [0,0.., 0] 
        /// </summary>
        public struct StateAtCoordinate {
            [NonSerialized]
            private Position _position;

            // ReSharper disable MemberHidesStaticFromOuterClass
            public Position Position {
                // ReSharper restore MemberHidesStaticFromOuterClass
                get { return _position; }
                internal set {
                    Contract.Requires(0 < value.Coord.Length);
                    Contract.Ensures(_position.Equals(value));
                    _position = value;
                }
            }

            public int State { get; internal set; }

            public StateAtCoordinate(Position pos, int state)
                : this() {
                Contract.Requires(0 < pos.Coord.Length);
                Position = pos;
                State = state;
            }
        }

        /// <summary>
        ///   Construct a Rule for a celluar automaton with the given dimensions.
        /// </summary>
        /// <param name = "dimensions"></param>
        /// <param name = "ruleDelegate">The rule function</param>
        ]]></source>
</chunk>
<chunk hits="2" offset="000b" domain="userortestcode"><source><![CDATA[public Rule(uint dimensions, RuleDelegate ruleDelegate)]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="1" offset="0012" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="1" offset="0013" domain="userortestcode"><source><![CDATA[Dimensions = dimensions;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="1" offset="001b" domain="userortestcode"><source><![CDATA[MyRuleDelegate = ruleDelegate;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
        ]]></source>
</chunk>
<chunk hits="1" offset="0023" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[

        /// <summary>
        ///   Apply the method in the instance's RuleDelegate to the given cell.
        /// </summary>
        /// <param name="subject"></param>
        /// <param name = "cellularAutomaton"></param>
        /// <param name="optional">Optional parameters for specialized rules</param>
        /// <returns>The next state of the cell based on current state of its neighbourhood</returns>
        [PexMethod]
        public virtual int ApplyRule(int[] subject, CellularAutomaton cellularAutomaton, params int[] optional) {
            Contract.Requires(null != subject);
            Contract.Requires(0 < Neighbourhood.Count);
            Contract.Ensures(cellularAutomaton.GetCell(subject).State.SpaceMin <= Contract.Result<int>());
            Contract.Ensures(cellularAutomaton.GetCell(subject).State.SpaceMax >= Contract.Result<int>());
            IEnumerable<StateAtCoordinate> statesOfNeighbours =
                (from n in Neighbourhood
                 select new StateAtCoordinate {
                     Position = (Position)n.Coord,
                     State = cellularAutomaton.GetCell(n + subject).State.CurrentState
                 });
            return DispatchToDelegate(cellularAutomaton.GetCell(subject), statesOfNeighbours, optional);
        }

        /// <summary>
        /// This method provides a simple yet not perfect workaround for enforcing contracts on delegates.
        /// It simply wraps the invocation of the delegate with pre- and postconditions.
        /// The postcondition focuses on validating the immutability of the forwarded data.
        /// Primarily to ensure that if we're dealine with a multicast delegate - 
        /// none of its members screw things up for the others.
        /// </summary>
        /// <param name="cell"></param>
        /// <param name="statesOfNeighbours">Call by reference so we can check in the postcondition if it has been modified</param>
        /// <param name="optional"></param>
        /// <returns></returns>
        private int DispatchToDelegate(Cell cell, IEnumerable<StateAtCoordinate> statesOfNeighbours,
                                       params int[] optional) {
            Contract.Requires(null != cell);
            Contract.Requires(null != cell.State);
            Contract.Requires(0 < Neighbourhood.Count);
            Contract.Requires(Neighbourhood.Count == statesOfNeighbours.Count());
            Contract.Requires(Contract.ForAll(statesOfNeighbours, s => Dimensions == s.Position.Coord.Length));
            Contract.Ensures(Contract.OldValue(cell) == cell);
            Contract.Ensures(cell.State.SpaceMin <= Contract.Result<int>());
            Contract.Ensures(cell.State.SpaceMax >= Contract.Result<int>());
            return MyRuleDelegate(cell, ref statesOfNeighbours, optional);
        }

        /// <summary>
        ///   Clear the neighbourhood for this rule.
        /// </summary>
        protected internal void ClearNeighbourhood() {
            _neighbourhood = new List<Position>();
        }

        /// <summary>
        ///   Add a neighbour with the gicen coordinats to the neighbourhood.
        ///   Note: if it is already in the neighbourhood it will not be added again.
        /// </summary>
        /// <param name = "coord"></param>
        protected internal void AddNeighbour(params int[] coord) ]]></source>
</chunk>
<method name="AddNeighbour" namespace="AutomaTones.Model.Automaton_Model" type="AutomaTones.Model.Automaton_Model.Rule" typeName="Rule" token="60000a5" module="AutomaTones.exe"><hits><hit index="0" value="8"/>
<hit index="1" value="8"/>
<hit index="2" value="8"/>
<hit index="3" value="8"/>
<hit index="4" value="8"/>
<hit index="5" value="8"/>
<hit index="6" value="8"/>
<hit index="7" value="16"/>
</hits>
<coverage domain="userortestcode" unit="block" covered="3" total="3" coveredRatio="1"/>
</method>
<chunk hits="8" offset="0000" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            Contract.Requires(Dimensions == coord.Length);
            Contract.Ensures(Neighbourhood.Contains((Position)coord));
            ]]></source>
</chunk>
<chunk hits="8" offset="0001" domain="userortestcode"><source><![CDATA[_neighbourhood.Add((Position)coord);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
        ]]></source>
</chunk>
<chunk hits="24" offset="0013" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[

        [ContractInvariantMethod]
// ReSharper disable UnusedMember.Local
        private void ObjInvariant() {
// ReSharper restore UnusedMember.Local
            Contract.Invariant(0 < Dimensions);
        }
    }

    /// <author>Anders Øland / anoe@itu.dk</author>
    /// <summary>
    /// A specialized rule for use with Wolfram Automata - or other pattern-based rule-type CA's.
    /// </summary>
    [Serializable]
    public class WolframRule : Rule {
        /// <summary>
        /// The Wolfram code for this Wolfram rule.
        /// </summary>
        public int[] WolframCode { get; internal set; }

        ]]></source>
</chunk>
<method name=".ctor" namespace="AutomaTones.Model.Automaton_Model" type="AutomaTones.Model.Automaton_Model.WolframRule" typeName="WolframRule" token="60000ba" module="AutomaTones.exe"><hits><hit index="0" value="1"/>
<hit index="1" value="1"/>
<hit index="2" value="1"/>
<hit index="3" value="1"/>
<hit index="4" value="1"/>
</hits>
<coverage domain="userortestcode" unit="block" covered="3" total="3" coveredRatio="1"/>
</method>
<chunk hits="1" offset="0000" domain="userortestcode"><source><![CDATA[public WolframRule(uint dimensions, RuleDelegate ruleDelegate, int[] wolframCode)
            : base(dimensions, ruleDelegate)]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="1" offset="0009" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="1" offset="000a" domain="userortestcode"><source><![CDATA[WolframCode = wolframCode;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
        ]]></source>
</chunk>
<chunk hits="1" offset="0012" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[

        /// <summary>
        ///   Apply the method in the instance's RuleDelegate to the given cell.
        /// </summary>
        /// <param name="subject"></param>
        /// <param name = "cellularAutomaton"></param>
        /// <param name="optional">Optional parameters for specialized rules</param>
        /// <returns>The next state of the cell based on current state of its neighbourhood</returns>
        public override int ApplyRule(int[] subject, CellularAutomaton cellularAutomaton, params int[] optional) {
            return base.ApplyRule(subject, cellularAutomaton, WolframCode);
        }
    }
}]]></source>
</chunk>
</document>
<document src="C:\Users\Anders\Documents\automatones\Visual Studio\AutomaTones\AutomaTones\Model\Automaton Model\RuleLib\WolframAutomata.cs" renderPrefix="s17"><chunk hits="-1" domain="unknown"><source><![CDATA[using System;
using System.Collections.Generic;
using System.Diagnostics.Contracts;
using System.Linq;
using Microsoft.Pex.Framework;

namespace AutomaTones.Model.Automaton_Model.RuleLib {
    /// <author>Anders Øland / anoe@itu</author>
    /// <summary>
    /// Provides the rule used for the Wolfram Automatons - or any other pattern-based rule-type cellular automaton.
    /// <br></br><br></br>
    /// This class also facilitates easy setup of Wolfram/pattern-based CA. 
    /// </summary>
    [PexClass]
    public static partial class WolframAutomata {
        /// <summary>
        /// This rule is intended for use with Wolfram one-dimensional automata -
        /// or any other pattern-based rule-type cellular automaton.
        /// The state space may have any size - but MUST be shared by all cells, and the lower bound MUST be zero - 
        /// and the grid can be N-dimensional.
        /// <br></br><br></br>
        /// The rule is represented by a Wolfram code; 
        /// range 0 to S^S^(2n+1) - 1 where S = size of the state space, n = size of the neighbourhood.
        /// Eg. a Wolfram Code for a binary rule based on two neighbours:<br></br>
        /// Pattern 1: 00 --> new state 0<br></br>
        /// Pattern 2: 01 --> new state 1<br></br>
        /// Pattern 3: 10 --> new state 0<br></br>
        /// Pattern 4: 11 --> new state 1<br></br>
        /// The code number is the binary number formed by the state column: %1010
        /// ==> Rule number 10 (decimal). <br></br><br></br>
        /// Thus when eg. pattern 4 is parsed to this rule ==> it returns bit 4 of the Wolfram code.<br></br><br></br>
        /// NOTE: 8 neighbours and 8 possible states ==> 8^8^17 - 1 possible rules(!!!) and ulong.MaxValue = 2^64 -1. 
        /// Thus, not all possible rules can be used!
        /// </summary>
        /// <param name="cell"></param>
        /// <param name="statesOfNeighbours"></param>
        /// <param name="wolframCode">MUST be less than 2^64</param>
        /// <returns></returns>
        public static int WolframRule(Cell cell, ref IEnumerable<Rule.StateAtCoordinate> statesOfNeighbours,
                                      int[] wolframCode) {
            Contract.Requires(null != cell);
            Contract.Requires(0 == cell.State.SpaceMin && 0 < cell.State.SpaceMax);
            Contract.Requires(Contract.ForAll(statesOfNeighbours, sn => 1 == sn.Position.Coord.Length));
            Contract.Requires(Contract.ForAll(statesOfNeighbours, sn => cell.State.SpaceMin <= sn.State
                                                                        && cell.State.SpaceMax >= sn.State));
            Contract.Ensures(cell.State.SpaceMin <= Contract.Result<int>());
            Contract.Ensures(cell.State.SpaceMax >= Contract.Result<int>());
            // Find the bit(or digit) number representing this pattern in the Wolfram Code for the chosen rule.
            var bit = Tools.Math.BaseToDecimal((from n in statesOfNeighbours select n.State).ToArray(),
                                               (uint) (cell.State.SpaceMax - cell.State.SpaceMin + 1));
            return wolframCode[bit];
        }

        /// <summary>
        /// Converts a Wolfram Code from decimal to any base( = the amount of possible states).
        /// The resulting array will have the length required to represent 2^64 - 1 in the given base.
        /// </summary>
        /// <param name="wolframCode">Decimal representation</param>
        /// <param name="stateSpace">The amount of possible states</param>
        /// <returns>Base[statespace] representation of the code by array of digits</returns>
        public static int[] WolframCode(ulong wolframCode, uint stateSpace = 2u) ]]></source>
</chunk>
<method name="WolframCode" namespace="AutomaTones.Model.Automaton_Model.RuleLib" type="AutomaTones.Model.Automaton_Model.RuleLib.WolframAutomata" typeName="WolframAutomata" token="600008a" module="AutomaTones.exe"><hits><hit index="0" value="1"/>
<hit index="1" value="1"/>
<hit index="2" value="1"/>
<hit index="3" value="1"/>
<hit index="4" value="1"/>
<hit index="5" value="1"/>
</hits>
<coverage domain="userortestcode" unit="block" covered="3" total="3" coveredRatio="1"/>
</method>
<chunk hits="1" offset="0000" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            Contract.Requires(1 < stateSpace);
            Contract.Ensures(Tools.Math.DecimalToBase(ulong.MaxValue, stateSpace).Length >=
                             Contract.Result<int[]>().Length);
            ]]></source>
</chunk>
<chunk hits="1" offset="0001" domain="userortestcode"><source><![CDATA[var digits = Tools.Math.DecimalToBase(ulong.MaxValue, stateSpace).Length;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="1" offset="000d" domain="userortestcode"><source><![CDATA[return Tools.Math.DecimalToBase(wolframCode, stateSpace, (uint) digits);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
        ]]></source>
</chunk>
<chunk hits="1" offset="0018" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[

        /// <summary>
        /// Converts a series of rule patterns into a Wolfram Code represented by an array of digits.
        /// The array will have the lenght needed to represent 2^64 -1 (ulong.MaxValue) in base[stateSpace]
        /// </summary>
        /// <param name="patterns">All the patterns included in the rule - concatenated in one array</param>
        /// <param name="states">List of the states which each pattern map to</param>
        /// <param name="numOfNeighbours">The size of the neighbourhood used by the intended rule</param>
        /// <param name="stateSpace">Amount of possible states</param>
        /// <returns>Base[statespace] representation of the code by array of digits</returns>
        public static int[] WolframCode(int[] patterns, int[] states, uint numOfNeighbours = 3u, uint stateSpace = 2u) {
            Contract.Requires(1 < stateSpace);
            Contract.Requires(0 == patterns.Length % numOfNeighbours);
            Contract.Requires(numOfNeighbours == states.Length);
            Contract.Ensures(Tools.Math.DecimalToBase(ulong.MaxValue, stateSpace).Length >=
                             Contract.Result<int[]>().Length);
            var digits = Tools.Math.DecimalToBase(ulong.MaxValue, stateSpace).Length;
            int[] code = new int[digits];
            for (int i = 0; i < patterns.Length / numOfNeighbours; i++) {
                int[] pattern = (from x in patterns
                                     .Skip(i * (int) numOfNeighbours)
                                     .Take((int) numOfNeighbours)
                                 select x).ToArray();
                var digit = (int) Tools.Math.BaseToDecimal(pattern, stateSpace);
                code[digit] = states[i];
            }
            return code;
        }

        /// <summary>
        /// Creates a Wolfram Automaton (one-dimensional)
        /// </summary>
        /// <param name="viewedSize">view-grid size</param>
        /// <param name="ruleNumber">The rule number (wolfram code) to be used: 0-255</param>
        /// <param name="stateSpace">size of the state space, 2 = binary</param>
        /// <returns></returns>
        public static CellularAutomaton NewWolframAutomaton(uint viewedSize, uint ruleNumber, uint stateSpace = 2u) ]]></source>
</chunk>
<method name="NewWolframAutomaton" namespace="AutomaTones.Model.Automaton_Model.RuleLib" type="AutomaTones.Model.Automaton_Model.RuleLib.WolframAutomata" typeName="WolframAutomata" token="600008c" module="AutomaTones.exe"><hits><hit index="0" value="1"/>
<hit index="1" value="1"/>
<hit index="2" value="1"/>
<hit index="3" value="1"/>
<hit index="4" value="1"/>
<hit index="5" value="1"/>
</hits>
<coverage domain="userortestcode" unit="block" covered="3" total="4" coveredRatio="0.75"/>
</method>
<chunk hits="1" offset="0000" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            Contract.Requires(3 <= viewedSize);
            Contract.Requires(2 <= stateSpace);
            Contract.Requires(256 > ruleNumber);
            ]]></source>
</chunk>
<chunk hits="1" offset="0001" domain="userortestcode"><source><![CDATA[Rule wolframRule = NewWolframRule(WolframCode(ruleNumber));]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="1" offset="0010" domain="userortestcode"><source><![CDATA[return new WolframAutomaton(wolframRule, (int) stateSpace, viewedSize);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
        ]]></source>
</chunk>
<chunk hits="0" offset="001d" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[

        /// <summary>
        /// Creates a Wolfram Automaton (one-dimensional) instance, based on the given patterns and corresponding states.
        /// </summary>
        /// <param name="viewedSize">view-grid size</param>
        /// <param name="patterns">the patterns of the rule concatenated into one array</param>
        /// <param name="states">the states correlating to each of the patterns</param>
        /// <param name="numOfNeighbours">size of the neighbourhood</param>
        /// <param name="stateSpace">size of the state space, 2 = binary</param>
        /// <returns></returns>
        public static CellularAutomaton NewWolframAutomaton(uint viewedSize, int[] patterns, int[] states, uint numOfNeighbours = 3u,
                                                            uint stateSpace = 2u) {
            Contract.Requires(3 <= viewedSize);
            Contract.Requires(1 < stateSpace);
            var wolframCode = WolframCode(patterns, states, numOfNeighbours, stateSpace);
            Rule wolframRule = NewWolframRule(wolframCode);
            return new WolframAutomaton(wolframRule, (int) stateSpace, viewedSize);
        }

        /// <summary>
        /// Get a new pattern-rule-based automaton instance, based on the given patterns and corresponding states, 
        /// for a two-dimensional CA
        /// </summary>
        /// <param name="size"></param>
        /// <param name="patterns">the patterns of the rule concatenated into one array</param>
        /// <param name="states">the states correlating to each of the patterns</param>
        /// <param name="numOfNeighbours">size of the neighbourhood</param>
        /// <param name="stateSpace"></param>
        /// <returns></returns>
        public static CellularAutomaton NewPatternAutomaton(uint size, int[] patterns, int[] states, uint numOfNeighbours = 3u,
                                                            uint stateSpace = 2u) {
            Contract.Requires(3 <= size);
            Contract.Requires(1 < stateSpace);
            var wolframCode = WolframCode(patterns, states, numOfNeighbours, stateSpace);
            Rule wolframRule = NewWolframRule(wolframCode);
            return new CellularAutomaton(1, size, wolframRule);
        }

        /// <summary>
        /// Get a new Wolfram Rule instance (for one-dimensional use).
        /// </summary>
        /// <param name="wolframCode"></param>
        /// <param name="stateSpace">MUST be >= 2</param>
        /// <returns>Wolfram CA</returns>
        public static Rule NewWolframRule(int[] wolframCode, uint stateSpace = 2u) ]]></source>
</chunk>
<method name="NewWolframRule" namespace="AutomaTones.Model.Automaton_Model.RuleLib" type="AutomaTones.Model.Automaton_Model.RuleLib.WolframAutomata" typeName="WolframAutomata" token="600008f" module="AutomaTones.exe"><hits><hit index="0" value="1"/>
<hit index="1" value="1"/>
<hit index="3" value="1"/>
<hit index="4" value="1"/>
<hit index="6" value="1"/>
<hit index="8" value="1"/>
<hit index="9" value="1"/>
<hit index="10" value="1"/>
<hit index="11" value="1"/>
<hit index="12" value="1"/>
<hit index="13" value="1"/>
<hit index="14" value="1"/>
<hit index="15" value="1"/>
<hit index="16" value="3"/>
<hit index="17" value="3"/>
<hit index="19" value="3"/>
<hit index="20" value="3"/>
<hit index="21" value="3"/>
<hit index="22" value="3"/>
<hit index="23" value="3"/>
<hit index="24" value="3"/>
<hit index="25" value="3"/>
<hit index="26" value="3"/>
<hit index="27" value="6"/>
<hit index="28" value="4"/>
<hit index="29" value="1"/>
<hit index="30" value="3"/>
</hits>
<coverage domain="userortestcode" unit="block" covered="6" total="6" coveredRatio="1"/>
</method>
<chunk hits="1" offset="0000" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            Contract.Requires(null != wolframCode);
            Contract.Requires(1 < stateSpace);
            ]]></source>
</chunk>
<chunk hits="1" offset="0001" domain="userortestcode"><source><![CDATA[WolframRule wolframRule = new WolframRule(1, WolframRule, wolframCode);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[

            // Setup the coordinates for the neighbours which the rule uses 
            ]]></source>
</chunk>
<chunk hits="1" offset="0015" domain="userortestcode"><source><![CDATA[var neighbourhood = new[] {-1, 0, 1};]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="002a" domain="userortestcode"><source><![CDATA[foreach]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ (]]></source>
</chunk>
<chunk hits="3" offset="0033" domain="userortestcode"><source><![CDATA[int n]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="12" offset="0055" domain="userortestcode"><source><![CDATA[in]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="3" offset="002b" domain="userortestcode"><source><![CDATA[neighbourhood]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[) ]]></source>
</chunk>
<chunk hits="6" offset="0039" domain="userortestcode"><source><![CDATA[wolframRule.AddNeighbour(n);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="1" offset="0063" domain="userortestcode"><source><![CDATA[return wolframRule;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
        ]]></source>
</chunk>
<chunk hits="1" offset="0067" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[

        /// <summary>
        /// Get a new WolframRule instance - for two-dimensional pattern-based CA).
        /// </summary>
        /// <param name="wolframCode"></param>
        /// <param name="stateSpace">MUST be >= 2</param>
        /// <returns>Wolfram CA</returns>
        [PexMethod]
        public static Rule NewPatternRule(int[] wolframCode, uint stateSpace = 2u) ]]></source>
</chunk>
<method name="NewPatternRule" namespace="AutomaTones.Model.Automaton_Model.RuleLib" type="AutomaTones.Model.Automaton_Model.RuleLib.WolframAutomata" typeName="WolframAutomata" token="6000090" module="AutomaTones.exe"><hits><hit index="0" value="1"/>
<hit index="1" value="1"/>
<hit index="3" value="1"/>
<hit index="4" value="1"/>
<hit index="6" value="1"/>
<hit index="8" value="1"/>
<hit index="9" value="1"/>
<hit index="11" value="1"/>
<hit index="12" value="1"/>
<hit index="13" value="1"/>
<hit index="14" value="1"/>
<hit index="15" value="1"/>
<hit index="16" value="1"/>
<hit index="17" value="1"/>
<hit index="18" value="1"/>
<hit index="19" value="1"/>
<hit index="20" value="1"/>
<hit index="21" value="1"/>
<hit index="22" value="1"/>
<hit index="24" value="1"/>
<hit index="25" value="1"/>
<hit index="26" value="1"/>
<hit index="27" value="1"/>
<hit index="28" value="1"/>
<hit index="29" value="1"/>
<hit index="30" value="1"/>
<hit index="31" value="1"/>
<hit index="32" value="1"/>
<hit index="34" value="1"/>
<hit index="35" value="1"/>
<hit index="36" value="1"/>
<hit index="37" value="1"/>
<hit index="38" value="1"/>
<hit index="39" value="1"/>
<hit index="40" value="1"/>
<hit index="41" value="1"/>
<hit index="42" value="1"/>
<hit index="43" value="1"/>
<hit index="44" value="1"/>
<hit index="45" value="1"/>
<hit index="47" value="1"/>
<hit index="48" value="1"/>
<hit index="49" value="1"/>
<hit index="50" value="1"/>
<hit index="51" value="1"/>
<hit index="52" value="1"/>
<hit index="53" value="1"/>
<hit index="54" value="1"/>
<hit index="55" value="1"/>
<hit index="57" value="1"/>
<hit index="58" value="1"/>
<hit index="59" value="1"/>
<hit index="60" value="1"/>
<hit index="61" value="1"/>
<hit index="62" value="1"/>
<hit index="63" value="1"/>
<hit index="64" value="1"/>
<hit index="65" value="1"/>
<hit index="66" value="1"/>
<hit index="67" value="1"/>
<hit index="68" value="1"/>
<hit index="70" value="1"/>
<hit index="71" value="1"/>
<hit index="72" value="1"/>
<hit index="73" value="1"/>
<hit index="74" value="1"/>
<hit index="75" value="1"/>
<hit index="76" value="1"/>
<hit index="77" value="1"/>
<hit index="78" value="1"/>
<hit index="80" value="1"/>
<hit index="81" value="1"/>
<hit index="82" value="1"/>
<hit index="83" value="1"/>
<hit index="84" value="1"/>
<hit index="85" value="1"/>
<hit index="86" value="1"/>
<hit index="87" value="1"/>
<hit index="88" value="1"/>
<hit index="89" value="1"/>
<hit index="90" value="1"/>
<hit index="91" value="1"/>
<hit index="93" value="1"/>
<hit index="94" value="1"/>
<hit index="95" value="1"/>
<hit index="96" value="1"/>
<hit index="97" value="1"/>
<hit index="98" value="1"/>
<hit index="99" value="1"/>
<hit index="100" value="1"/>
<hit index="101" value="1"/>
<hit index="102" value="8"/>
<hit index="103" value="8"/>
<hit index="104" value="8"/>
<hit index="105" value="8"/>
<hit index="106" value="8"/>
<hit index="107" value="16"/>
<hit index="108" value="9"/>
<hit index="109" value="1"/>
<hit index="110" value="8"/>
</hits>
<coverage domain="userortestcode" unit="block" covered="6" total="6" coveredRatio="1"/>
</method>
<chunk hits="1" offset="0000" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            Contract.Requires(null != wolframCode);
            Contract.Requires(1 < stateSpace);
            ]]></source>
</chunk>
<chunk hits="1" offset="0001" domain="userortestcode"><source><![CDATA[WolframRule wolframRule = new WolframRule(2, WolframRule, wolframCode);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[

            // Setup the coordinates for the neighbours which the rule uses 
            ]]></source>
</chunk>
<chunk hits="1" offset="0015" domain="userortestcode"><source><![CDATA[var neighbourhood = new[] {
                                          new[] {-1, 1}, new[] {0, 1}, new[] {1, 1}, new[] {1, 0},
                                          new[] {1, -1}, new[] {0, -1}, new[] {-1, -1}, new[] {-1, 0}
                                      };]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="4" offset="00cc" domain="userortestcode"><source><![CDATA[foreach]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ (]]></source>
</chunk>
<chunk hits="8" offset="00d5" domain="userortestcode"><source><![CDATA[var n]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="28" offset="00e9" domain="userortestcode"><source><![CDATA[in]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="4" offset="00cd" domain="userortestcode"><source><![CDATA[neighbourhood]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[) ]]></source>
</chunk>
<chunk hits="16" offset="00db" domain="userortestcode"><source><![CDATA[wolframRule.AddNeighbour(n);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="1" offset="00f7" domain="userortestcode"><source><![CDATA[return wolframRule;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
        ]]></source>
</chunk>
<chunk hits="1" offset="00fb" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[

        /// <summary>
        /// Demo game Wolfram automaton in the console.
        /// Press a key + return to evolve.
        /// </summary>
        [PexMethod]
        public static void WolframDemo(uint rule, int generations) ]]></source>
</chunk>
<method name="WolframDemo" namespace="AutomaTones.Model.Automaton_Model.RuleLib" type="AutomaTones.Model.Automaton_Model.RuleLib.WolframAutomata" typeName="WolframAutomata" token="6000091" module="AutomaTones.exe"><hits><hit index="0" value="1"/>
<hit index="1" value="1"/>
</hits>
<coverage domain="userortestcode" unit="block" covered="1" total="9" coveredRatio="0.11111111111111111"/>
</method>
<chunk hits="1" offset="0000" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="1" offset="0001" domain="userortestcode"><source><![CDATA[CellularAutomaton wolframAutomaton = NewWolframAutomaton(70, rule);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
//            wolframAutomaton[35] = 1;
            ]]></source>
</chunk>
<chunk hits="0" offset="000b" domain="userortestcode"><source><![CDATA[Console.WriteLine("Wolfram elementary automaton using Rule "+rule);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="0033" domain="userortestcode"><source><![CDATA[while (generations-- > 0)]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="0" offset="0023" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="0" offset="0024" domain="userortestcode"><source><![CDATA[Console.Write(wolframAutomaton);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="0" offset="002b" domain="userortestcode"><source><![CDATA[wolframAutomaton.Evolve();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="0032" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="0" offset="0040" domain="userortestcode"><source><![CDATA[Console.Read();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
        ]]></source>
</chunk>
<chunk hits="0" offset="0046" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
    }
}]]></source>
</chunk>
</document>
<document src="C:\Users\Anders\Documents\automatones\Visual Studio\AutomaTones\AutomaTones\Model\Tools\Math.cs" renderPrefix="s18"><chunk hits="-1" domain="unknown"><source><![CDATA[using System;
using System.Collections.Generic;
using System.Diagnostics.Contracts;
using System.Linq;

namespace AutomaTones.Model.Tools {
    /// <author>Anders Øland / anoe.itu.dk</author>
    /// <summary>
    /// A few mathematical tool medthods.
    /// </summary>
    public static class Math {
        /// <summary>
        /// Converts unsigned integer to any base.
        /// NOTE: result is given in an array of int's - so eg. hex numbers are represented by digits of 0-15
        /// </summary>
        /// <param name="intNum"></param>
        /// <param name="baseVal"></param>
        /// <param name="digits">specific number of digits for result (optional)</param>
        /// <returns></returns>
        public static int[] DecimalToBase(uint intNum, uint baseVal, uint digits = 0u) {
            Contract.Requires(0 <= intNum && 0 < baseVal);
            Contract.Ensures(Contract.ForAll(Contract.Result<int[]>(), n => 0 <= n && baseVal > n));
            Contract.Ensures(digits <= Contract.Result<int[]>().Length);
            return DecimalToBase((ulong) intNum, baseVal, digits);
        }

        /// <summary>
        /// Converts unsigned long to any base.
        /// NOTE: result is given in an array of int's - so eg. hex numbers are represented by digits of 0-15
        /// </summary>
        /// <param name="longNum"></param>
        /// <param name="baseVal"></param>
        /// <param name="digits">specific number of digits for result (optional)</param>
        /// <returns></returns>
        [Pure] // Tagged as pure since its being called from other contracts which I dont want to loosen 
        public static int[] DecimalToBase(ulong longNum, uint baseVal, uint digits = 0u) ]]></source>
</chunk>
<method name="DecimalToBase" namespace="AutomaTones.Model.Tools" type="AutomaTones.Model.Tools.Math" typeName="Math" token="600015e" module="AutomaTones.exe"><hits><hit index="0" value="2"/>
<hit index="1" value="2"/>
<hit index="3" value="2"/>
<hit index="4" value="64"/>
<hit index="5" value="64"/>
<hit index="6" value="64"/>
<hit index="7" value="64"/>
<hit index="8" value="128"/>
<hit index="9" value="64"/>
<hit index="10" value="2"/>
<hit index="11" value="64"/>
<hit index="12" value="64"/>
<hit index="13" value="64"/>
<hit index="14" value="128"/>
<hit index="15" value="66"/>
<hit index="16" value="66"/>
<hit index="17" value="66"/>
<hit index="18" value="132"/>
<hit index="19" value="2"/>
<hit index="20" value="2"/>
<hit index="21" value="2"/>
<hit index="22" value="64"/>
<hit index="23" value="64"/>
</hits>
<coverage domain="userortestcode" unit="block" covered="10" total="10" coveredRatio="1"/>
</method>
<chunk hits="2" offset="0000" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            Contract.Requires(0 <= longNum && 0 < baseVal);
            Contract.Ensures(digits <= Contract.Result<int[]>().Length);
            ]]></source>
</chunk>
<chunk hits="2" offset="0001" domain="userortestcode"><source><![CDATA[var result = new LinkedList<int>();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="66" offset="001d" domain="userortestcode"><source><![CDATA[while (longNum > 0)]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="64" offset="0009" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="64" offset="000a" domain="userortestcode"><source><![CDATA[result.AddLast((int) (longNum % baseVal));]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="192" offset="0016" domain="userortestcode"><source><![CDATA[longNum /= baseVal;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="64" offset="001c" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="194" offset="0030" domain="userortestcode"><source><![CDATA[while (digits > result.Count)]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="64" offset="0028" domain="userortestcode"><source><![CDATA[result.AddLast(0);]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="2" offset="003f" domain="userortestcode"><source><![CDATA[return result.ToArray();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
        ]]></source>
</chunk>
<chunk hits="2" offset="0048" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[

        /// <summary>
        /// Converts n digits of any base to decimal.
        /// </summary>
        /// <param name="baseNum"></param>
        /// <param name="baseVal"></param>
        /// <returns></returns>
        [Pure] // Tagged as pure since its being called from other contracts which I dont want to loosen 
        public static uint BaseToDecimal(int[] baseNum, uint baseVal) {
            Contract.Requires(null != baseNum);
            Contract.Requires(0 < baseNum.Length);
            Contract.Requires(0 < baseVal);
            return (uint) baseNum.Select((t, i) => (t * (int) System.Math.Pow(baseVal, baseNum.Length - i - 1))).Sum();
        }
    }
}]]></source>
</chunk>
</document>
<document src="C:\Users\Anders\Documents\automatones\Visual Studio\AutomaTones\AutomaTones\Model\MIDI\NoteOut.cs" renderPrefix="s19"><chunk hits="-1" domain="unknown"><source><![CDATA[using System;
using System.Collections.Generic;
using System.Diagnostics.Contracts;
using System.Linq;
using System.Text;
using Midi;

namespace AutomaTones.Model.MIDI
{
    /// <summary>
    /// NoteOut is a connector used for transporting the data we need for sending MidiOutput with the MidiOut class.
    /// </summary>
    /// <author>Anders Bech Mellson, anbh@itu.dk</author>
    class NoteOut {
        public Pitch Pitch;
        public int Velocity;
        public int Controller;
        public int ControllerValue;

        /// <summary>
        /// Constructs a NoteOut connector.
        /// It can hold both Midi note data and controller data.
        /// However the controller data has default values,
        /// since it's most common to use the notes.
        /// </summary>
        ]]></source>
</chunk>
<method name=".ctor" namespace="AutomaTones.Model.MIDI" type="AutomaTones.Model.MIDI.NoteOut" typeName="NoteOut" token="6000160" module="AutomaTones.exe"><hits><hit index="0" value="5"/>
<hit index="1" value="5"/>
<hit index="2" value="5"/>
<hit index="3" value="5"/>
<hit index="4" value="5"/>
<hit index="5" value="5"/>
<hit index="6" value="5"/>
<hit index="7" value="5"/>
<hit index="8" value="5"/>
<hit index="9" value="5"/>
<hit index="10" value="5"/>
</hits>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<chunk hits="5" offset="0000" domain="userortestcode"><source><![CDATA[public NoteOut(Pitch pitch, int velocity, int controller=0,int controllerValue=0)]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="5" offset="0007" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="5" offset="0008" domain="userortestcode"><source><![CDATA[Pitch = pitch;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="10" offset="000f" domain="userortestcode"><source><![CDATA[Velocity = velocity;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="10" offset="0016" domain="userortestcode"><source><![CDATA[this.Controller = controller;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="10" offset="001d" domain="userortestcode"><source><![CDATA[this.ControllerValue = controllerValue;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
        ]]></source>
</chunk>
<chunk hits="10" offset="0025" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
    }
}
]]></source>
</chunk>
</document>
<document src="C:\Users\Anders\Documents\automatones\Visual Studio\AutomaTones\AutomaTones\Model\MIDI\Mappers\HqstTranslator.cs" renderPrefix="s20"><chunk hits="-1" domain="unknown"><source><![CDATA[using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using AutomaTones.Model.Automaton_Model;
using Midi;
using Microsoft.Pex.Framework;

namespace AutomaTones.Model.MIDI.Mappers {
    [PexClass]
    partial class HqstTranslator : IMapper
    {
        private readonly List<NoteOut> _notes = new List<NoteOut>();
        [PexMethod]
        public List<NoteOut> Translate(State[,] grid)
        ]]></source>
</chunk>
<method name="Translate" namespace="AutomaTones.Model.MIDI.Mappers" type="AutomaTones.Model.MIDI.Mappers.HqstTranslator" typeName="HqstTranslator" token="6000161" module="AutomaTones.exe"><hits><hit index="0" value="1"/>
<hit index="1" value="1"/>
<hit index="2" value="1"/>
<hit index="3" value="1"/>
<hit index="4" value="1"/>
<hit index="5" value="2"/>
<hit index="6" value="1"/>
<hit index="7" value="1"/>
<hit index="8" value="1"/>
<hit index="9" value="1"/>
<hit index="10" value="1"/>
<hit index="11" value="9"/>
<hit index="12" value="9"/>
<hit index="13" value="9"/>
<hit index="14" value="9"/>
<hit index="15" value="9"/>
<hit index="16" value="9"/>
<hit index="17" value="18"/>
<hit index="18" value="8"/>
<hit index="19" value="3"/>
<hit index="20" value="3"/>
<hit index="21" value="3"/>
<hit index="22" value="3"/>
<hit index="23" value="3"/>
<hit index="24" value="3"/>
<hit index="25" value="6"/>
<hit index="26" value="1"/>
<hit index="27" value="2"/>
<hit index="28" value="2"/>
<hit index="29" value="2"/>
<hit index="30" value="2"/>
<hit index="31" value="2"/>
<hit index="32" value="2"/>
<hit index="33" value="2"/>
<hit index="34" value="4"/>
<hit index="35" value="2"/>
<hit index="36" value="2"/>
<hit index="37" value="2"/>
<hit index="38" value="2"/>
<hit index="39" value="2"/>
<hit index="40" value="2"/>
<hit index="41" value="4"/>
<hit index="42" value="2"/>
<hit index="43" value="2"/>
<hit index="44" value="2"/>
<hit index="46" value="2"/>
<hit index="47" value="2"/>
<hit index="48" value="2"/>
<hit index="49" value="2"/>
<hit index="50" value="4"/>
<hit index="51" value="2"/>
<hit index="52" value="2"/>
<hit index="53" value="2"/>
<hit index="54" value="2"/>
<hit index="55" value="2"/>
<hit index="56" value="2"/>
<hit index="57" value="2"/>
<hit index="58" value="4"/>
<hit index="59" value="2"/>
<hit index="60" value="2"/>
<hit index="61" value="2"/>
<hit index="62" value="2"/>
<hit index="63" value="2"/>
<hit index="64" value="2"/>
<hit index="65" value="4"/>
<hit index="66" value="2"/>
<hit index="67" value="2"/>
<hit index="68" value="2"/>
<hit index="70" value="2"/>
<hit index="71" value="2"/>
<hit index="72" value="2"/>
<hit index="73" value="2"/>
<hit index="74" value="4"/>
<hit index="75" value="1"/>
<hit index="76" value="1"/>
<hit index="77" value="1"/>
<hit index="78" value="1"/>
<hit index="79" value="1"/>
<hit index="80" value="1"/>
<hit index="81" value="1"/>
<hit index="82" value="2"/>
<hit index="83" value="1"/>
<hit index="84" value="1"/>
<hit index="85" value="1"/>
<hit index="86" value="1"/>
<hit index="87" value="1"/>
<hit index="88" value="1"/>
<hit index="89" value="2"/>
<hit index="90" value="1"/>
<hit index="91" value="1"/>
<hit index="92" value="1"/>
<hit index="94" value="1"/>
<hit index="95" value="1"/>
<hit index="96" value="1"/>
<hit index="97" value="1"/>
<hit index="98" value="2"/>
<hit index="99" value="1"/>
<hit index="100" value="1"/>
<hit index="101" value="1"/>
<hit index="102" value="1"/>
<hit index="103" value="1"/>
<hit index="104" value="1"/>
<hit index="105" value="1"/>
<hit index="106" value="2"/>
<hit index="107" value="1"/>
<hit index="108" value="1"/>
<hit index="109" value="1"/>
<hit index="110" value="1"/>
<hit index="111" value="1"/>
<hit index="112" value="1"/>
<hit index="113" value="2"/>
<hit index="114" value="1"/>
<hit index="115" value="1"/>
<hit index="116" value="1"/>
<hit index="118" value="1"/>
<hit index="119" value="1"/>
<hit index="120" value="1"/>
<hit index="121" value="1"/>
<hit index="122" value="2"/>
<hit index="123" value="1"/>
<hit index="124" value="1"/>
<hit index="125" value="1"/>
<hit index="126" value="1"/>
<hit index="127" value="1"/>
<hit index="128" value="1"/>
<hit index="129" value="1"/>
<hit index="130" value="2"/>
<hit index="131" value="1"/>
<hit index="132" value="1"/>
<hit index="133" value="1"/>
<hit index="134" value="1"/>
<hit index="135" value="1"/>
<hit index="136" value="1"/>
<hit index="137" value="2"/>
<hit index="138" value="1"/>
<hit index="139" value="1"/>
<hit index="140" value="1"/>
<hit index="142" value="1"/>
<hit index="143" value="1"/>
<hit index="144" value="1"/>
<hit index="145" value="1"/>
<hit index="146" value="2"/>
<hit index="147" value="1"/>
<hit index="148" value="1"/>
<hit index="149" value="1"/>
<hit index="150" value="1"/>
<hit index="151" value="1"/>
<hit index="152" value="1"/>
<hit index="153" value="1"/>
<hit index="154" value="2"/>
<hit index="155" value="1"/>
<hit index="156" value="1"/>
<hit index="157" value="1"/>
<hit index="158" value="1"/>
<hit index="159" value="1"/>
<hit index="160" value="1"/>
<hit index="161" value="2"/>
<hit index="162" value="1"/>
<hit index="163" value="1"/>
<hit index="164" value="1"/>
<hit index="166" value="1"/>
<hit index="167" value="1"/>
<hit index="168" value="1"/>
<hit index="169" value="1"/>
<hit index="170" value="2"/>
<hit index="171" value="1"/>
<hit index="172" value="1"/>
<hit index="173" value="1"/>
<hit index="174" value="1"/>
<hit index="175" value="1"/>
<hit index="176" value="1"/>
<hit index="177" value="1"/>
<hit index="178" value="2"/>
<hit index="179" value="1"/>
<hit index="180" value="1"/>
<hit index="181" value="1"/>
<hit index="182" value="1"/>
<hit index="183" value="1"/>
<hit index="184" value="1"/>
<hit index="185" value="2"/>
<hit index="186" value="1"/>
<hit index="187" value="1"/>
<hit index="188" value="1"/>
<hit index="190" value="1"/>
<hit index="191" value="1"/>
<hit index="192" value="1"/>
<hit index="193" value="1"/>
<hit index="194" value="2"/>
<hit index="195" value="3"/>
<hit index="196" value="1"/>
<hit index="197" value="1"/>
<hit index="198" value="3"/>
<hit index="199" value="9"/>
<hit index="200" value="9"/>
<hit index="201" value="9"/>
<hit index="202" value="9"/>
<hit index="203" value="9"/>
<hit index="204" value="9"/>
<hit index="205" value="18"/>
<hit index="206" value="8"/>
<hit index="207" value="4"/>
<hit index="208" value="4"/>
<hit index="209" value="4"/>
<hit index="210" value="4"/>
<hit index="211" value="4"/>
<hit index="212" value="4"/>
<hit index="213" value="8"/>
<hit index="214" value="2"/>
<hit index="215" value="3"/>
<hit index="216" value="3"/>
<hit index="217" value="3"/>
<hit index="218" value="3"/>
<hit index="219" value="3"/>
<hit index="220" value="3"/>
<hit index="221" value="3"/>
<hit index="222" value="6"/>
<hit index="223" value="3"/>
<hit index="224" value="3"/>
<hit index="225" value="3"/>
<hit index="226" value="3"/>
<hit index="227" value="3"/>
<hit index="228" value="3"/>
<hit index="229" value="6"/>
<hit index="230" value="3"/>
<hit index="231" value="3"/>
<hit index="232" value="3"/>
<hit index="234" value="3"/>
<hit index="235" value="3"/>
<hit index="236" value="3"/>
<hit index="237" value="3"/>
<hit index="238" value="6"/>
<hit index="239" value="2"/>
<hit index="240" value="2"/>
<hit index="241" value="2"/>
<hit index="242" value="2"/>
<hit index="243" value="2"/>
<hit index="244" value="2"/>
<hit index="245" value="2"/>
<hit index="246" value="4"/>
<hit index="247" value="2"/>
<hit index="248" value="2"/>
<hit index="249" value="2"/>
<hit index="250" value="2"/>
<hit index="251" value="2"/>
<hit index="252" value="2"/>
<hit index="253" value="4"/>
<hit index="254" value="2"/>
<hit index="255" value="2"/>
<hit index="256" value="2"/>
<hit index="258" value="2"/>
<hit index="259" value="2"/>
<hit index="260" value="2"/>
<hit index="261" value="2"/>
<hit index="262" value="4"/>
<hit index="263" value="1"/>
<hit index="264" value="1"/>
<hit index="265" value="1"/>
<hit index="266" value="1"/>
<hit index="267" value="1"/>
<hit index="268" value="1"/>
<hit index="269" value="1"/>
<hit index="270" value="2"/>
<hit index="271" value="1"/>
<hit index="272" value="1"/>
<hit index="273" value="1"/>
<hit index="274" value="1"/>
<hit index="275" value="1"/>
<hit index="276" value="1"/>
<hit index="277" value="2"/>
<hit index="278" value="1"/>
<hit index="279" value="1"/>
<hit index="280" value="1"/>
<hit index="282" value="1"/>
<hit index="283" value="1"/>
<hit index="284" value="1"/>
<hit index="285" value="1"/>
<hit index="286" value="2"/>
<hit index="287" value="1"/>
<hit index="288" value="1"/>
<hit index="289" value="1"/>
<hit index="290" value="1"/>
<hit index="291" value="1"/>
<hit index="292" value="1"/>
<hit index="293" value="1"/>
<hit index="294" value="2"/>
<hit index="295" value="1"/>
<hit index="296" value="1"/>
<hit index="297" value="1"/>
<hit index="298" value="1"/>
<hit index="299" value="1"/>
<hit index="300" value="1"/>
<hit index="301" value="2"/>
<hit index="302" value="1"/>
<hit index="303" value="1"/>
<hit index="304" value="1"/>
<hit index="306" value="1"/>
<hit index="307" value="1"/>
<hit index="308" value="1"/>
<hit index="309" value="1"/>
<hit index="310" value="2"/>
<hit index="311" value="2"/>
<hit index="312" value="2"/>
<hit index="313" value="2"/>
<hit index="314" value="2"/>
<hit index="315" value="2"/>
<hit index="316" value="2"/>
<hit index="317" value="2"/>
<hit index="318" value="4"/>
<hit index="319" value="2"/>
<hit index="320" value="2"/>
<hit index="321" value="2"/>
<hit index="322" value="2"/>
<hit index="323" value="2"/>
<hit index="324" value="2"/>
<hit index="325" value="4"/>
<hit index="326" value="2"/>
<hit index="327" value="2"/>
<hit index="328" value="2"/>
<hit index="330" value="2"/>
<hit index="331" value="2"/>
<hit index="332" value="2"/>
<hit index="333" value="2"/>
<hit index="334" value="4"/>
<hit index="335" value="2"/>
<hit index="336" value="2"/>
<hit index="337" value="2"/>
<hit index="338" value="2"/>
<hit index="339" value="2"/>
<hit index="340" value="2"/>
<hit index="341" value="2"/>
<hit index="342" value="4"/>
<hit index="343" value="2"/>
<hit index="344" value="2"/>
<hit index="345" value="2"/>
<hit index="346" value="2"/>
<hit index="347" value="2"/>
<hit index="348" value="2"/>
<hit index="349" value="4"/>
<hit index="350" value="2"/>
<hit index="351" value="2"/>
<hit index="352" value="2"/>
<hit index="354" value="2"/>
<hit index="355" value="2"/>
<hit index="356" value="2"/>
<hit index="357" value="2"/>
<hit index="358" value="4"/>
<hit index="359" value="1"/>
<hit index="360" value="1"/>
<hit index="361" value="1"/>
<hit index="362" value="1"/>
<hit index="363" value="1"/>
<hit index="364" value="1"/>
<hit index="365" value="1"/>
<hit index="366" value="2"/>
<hit index="367" value="1"/>
<hit index="368" value="1"/>
<hit index="369" value="1"/>
<hit index="370" value="1"/>
<hit index="371" value="1"/>
<hit index="372" value="1"/>
<hit index="373" value="2"/>
<hit index="374" value="1"/>
<hit index="375" value="1"/>
<hit index="376" value="1"/>
<hit index="378" value="1"/>
<hit index="379" value="1"/>
<hit index="380" value="1"/>
<hit index="381" value="1"/>
<hit index="382" value="2"/>
<hit index="383" value="12"/>
<hit index="384" value="3"/>
<hit index="385" value="4"/>
<hit index="386" value="1"/>
<hit index="387" value="1"/>
<hit index="388" value="1"/>
<hit index="389" value="1"/>
<hit index="390" value="3"/>
<hit index="391" value="2"/>
<hit index="392" value="2"/>
<hit index="393" value="1"/>
<hit index="394" value="1"/>
<hit index="395" value="1"/>
<hit index="396" value="1"/>
<hit index="397" value="1"/>
<hit index="398" value="9"/>
<hit index="399" value="3"/>
<hit index="400" value="4"/>
<hit index="401" value="3"/>
<hit index="402" value="2"/>
<hit index="403" value="1"/>
<hit index="404" value="1"/>
<hit index="405" value="2"/>
<hit index="406" value="2"/>
<hit index="407" value="1"/>
<hit index="408" value="9"/>
<hit index="409" value="3"/>
<hit index="410" value="1"/>
<hit index="411" value="1"/>
</hits>
<coverage domain="userortestcode" unit="block" covered="94" total="94" coveredRatio="1"/>
</method>
<chunk hits="1" offset="0000" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="1" offset="0001" domain="userortestcode"><source><![CDATA[_notes.Clear();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="000d" domain="userortestcode"><source><![CDATA[if (grid.GetLength(0) < 3 || grid.GetLength(1) < 3)]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="1" offset="002b" domain="userortestcode"><source><![CDATA[return _notes;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            for (]]></source>
</chunk>
<chunk hits="1" offset="0037" domain="userortestcode"><source><![CDATA[int i = 0;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="4" offset="0231" domain="userortestcode"><source><![CDATA[i < 3]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[; ]]></source>
</chunk>
<chunk hits="3" offset="022d" domain="userortestcode"><source><![CDATA[i++]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[)
            ]]></source>
</chunk>
<chunk hits="3" offset="003e" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                for (]]></source>
</chunk>
<chunk hits="3" offset="003f" domain="userortestcode"><source><![CDATA[int j = 0;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="39" offset="0221" domain="userortestcode"><source><![CDATA[j < 3]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[; ]]></source>
</chunk>
<chunk hits="36" offset="021d" domain="userortestcode"><source><![CDATA[j++]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[) ]]></source>
</chunk>
<chunk hits="9" offset="0046" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                    ]]></source>
</chunk>
<chunk hits="9" offset="0047" domain="userortestcode"><source><![CDATA[if (grid[i, j].CurrentState == 0)]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                        ]]></source>
</chunk>
<chunk hits="8" offset="005e" domain="userortestcode"><source><![CDATA[continue;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                    ]]></source>
</chunk>
<chunk hits="3" offset="0063" domain="userortestcode"><source><![CDATA[switch (grid[i, j].CurrentState)]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ {
                        case 1:
                            ]]></source>
</chunk>
<chunk hits="2" offset="009c" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                                ]]></source>
</chunk>
<chunk hits="2" offset="009d" domain="userortestcode"><source><![CDATA[_notes.Add(new NoteOut(Pitch.A3, grid[i, j].CurrentState * 1, 50,
                                                       grid[i, j].CurrentState % 3));]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                                ]]></source>
</chunk>
<chunk hits="6" offset="00ce" domain="userortestcode"><source><![CDATA[break;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                            }
                       case 2:
                            ]]></source>
</chunk>
<chunk hits="2" offset="00d3" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                                ]]></source>
</chunk>
<chunk hits="2" offset="00d4" domain="userortestcode"><source><![CDATA[_notes.Add(new NoteOut(Pitch.A3, grid[i, j].CurrentState * 2, 50,
                                                       grid[i, j].CurrentState % 3));]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                                ]]></source>
</chunk>
<chunk hits="6" offset="0107" domain="userortestcode"><source><![CDATA[break;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                            }
                      case 3:
                            ]]></source>
</chunk>
<chunk hits="1" offset="010c" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                                ]]></source>
</chunk>
<chunk hits="1" offset="010d" domain="userortestcode"><source><![CDATA[_notes.Add(new NoteOut(Pitch.A3, grid[i, j].CurrentState * 3, 50,
                                                       grid[i, j].CurrentState % 3));]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                                ]]></source>
</chunk>
<chunk hits="3" offset="0140" domain="userortestcode"><source><![CDATA[break;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                            }
                      case 4:
                            ]]></source>
</chunk>
<chunk hits="1" offset="0145" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                                ]]></source>
</chunk>
<chunk hits="1" offset="0146" domain="userortestcode"><source><![CDATA[_notes.Add(new NoteOut(Pitch.A3, grid[i, j].CurrentState * 4, 50,
                                                       grid[i, j].CurrentState % 4));]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                                ]]></source>
</chunk>
<chunk hits="3" offset="0179" domain="userortestcode"><source><![CDATA[break;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                            }
                        case 5:
                            ]]></source>
</chunk>
<chunk hits="1" offset="017e" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                                ]]></source>
</chunk>
<chunk hits="1" offset="017f" domain="userortestcode"><source><![CDATA[_notes.Add(new NoteOut(Pitch.A3, grid[i, j].CurrentState * 4, 50,
                                                       grid[i, j].CurrentState % 5));]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                                ]]></source>
</chunk>
<chunk hits="3" offset="01b2" domain="userortestcode"><source><![CDATA[break;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                            }
                       case 6:
                            ]]></source>
</chunk>
<chunk hits="1" offset="01b4" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                                ]]></source>
</chunk>
<chunk hits="1" offset="01b5" domain="userortestcode"><source><![CDATA[_notes.Add(new NoteOut(Pitch.A3, grid[i, j].CurrentState * 1, 50,
                                                       grid[i, j].CurrentState % 6));]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                                ]]></source>
</chunk>
<chunk hits="3" offset="01e6" domain="userortestcode"><source><![CDATA[break;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                            }
                      case 7:
                            ]]></source>
</chunk>
<chunk hits="1" offset="01e8" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                                ]]></source>
</chunk>
<chunk hits="1" offset="01e9" domain="userortestcode"><source><![CDATA[_notes.Add(new NoteOut(Pitch.A3, grid[i, j].CurrentState * 1, 50,
                                                       grid[i, j].CurrentState % 7));]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                                ]]></source>
</chunk>
<chunk hits="3" offset="021a" domain="userortestcode"><source><![CDATA[break;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                            }
                    }
                ]]></source>
</chunk>
<chunk hits="28" offset="021c" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="022c" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[

            for (]]></source>
</chunk>
<chunk hits="1" offset="023c" domain="userortestcode"><source><![CDATA[int i = grid.GetLength(0)-3;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="4" offset="044c" domain="userortestcode"><source><![CDATA[i < grid.GetLength(0)]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[; ]]></source>
</chunk>
<chunk hits="3" offset="0448" domain="userortestcode"><source><![CDATA[i++]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[) ]]></source>
</chunk>
<chunk hits="3" offset="024b" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                for (]]></source>
</chunk>
<chunk hits="3" offset="024c" domain="userortestcode"><source><![CDATA[int j = grid.GetLength(1) - 3;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="49" offset="0436" domain="userortestcode"><source><![CDATA[j < grid.GetLength(1)]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[; ]]></source>
</chunk>
<chunk hits="46" offset="0432" domain="userortestcode"><source><![CDATA[j++]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[) ]]></source>
</chunk>
<chunk hits="9" offset="025b" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                    ]]></source>
</chunk>
<chunk hits="9" offset="025c" domain="userortestcode"><source><![CDATA[if (grid[i, j].CurrentState == 0)]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                        ]]></source>
</chunk>
<chunk hits="8" offset="0273" domain="userortestcode"><source><![CDATA[continue;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                    ]]></source>
</chunk>
<chunk hits="4" offset="0278" domain="userortestcode"><source><![CDATA[switch (grid[i, j].CurrentState)]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ {
                        case 1: ]]></source>
</chunk>
<chunk hits="3" offset="02b1" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                                ]]></source>
</chunk>
<chunk hits="3" offset="02b2" domain="userortestcode"><source><![CDATA[_notes.Add(new NoteOut(Pitch.A3, grid[i, j].CurrentState * 1, 50,
                                                       grid[i, j].CurrentState % 3));]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                                ]]></source>
</chunk>
<chunk hits="9" offset="02e3" domain="userortestcode"><source><![CDATA[break;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                            }
                        case 2: ]]></source>
</chunk>
<chunk hits="2" offset="02e8" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                                ]]></source>
</chunk>
<chunk hits="2" offset="02e9" domain="userortestcode"><source><![CDATA[_notes.Add(new NoteOut(Pitch.A3, grid[i, j].CurrentState * 2, 50,
                                                       grid[i, j].CurrentState % 3));]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                                ]]></source>
</chunk>
<chunk hits="6" offset="031c" domain="userortestcode"><source><![CDATA[break;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                            }
                        case 3: ]]></source>
</chunk>
<chunk hits="1" offset="0321" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                                ]]></source>
</chunk>
<chunk hits="1" offset="0322" domain="userortestcode"><source><![CDATA[_notes.Add(new NoteOut(Pitch.A3, grid[i, j].CurrentState * 3, 50,
                                                       grid[i, j].CurrentState % 3));]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                                ]]></source>
</chunk>
<chunk hits="3" offset="0355" domain="userortestcode"><source><![CDATA[break;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                            }
                        case 4: ]]></source>
</chunk>
<chunk hits="1" offset="035a" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                                ]]></source>
</chunk>
<chunk hits="1" offset="035b" domain="userortestcode"><source><![CDATA[_notes.Add(new NoteOut(Pitch.A3, grid[i, j].CurrentState * 4, 50,
                                                       grid[i, j].CurrentState % 4));]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                                ]]></source>
</chunk>
<chunk hits="3" offset="038e" domain="userortestcode"><source><![CDATA[break;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                            }
                        case 5: ]]></source>
</chunk>
<chunk hits="2" offset="0393" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                                ]]></source>
</chunk>
<chunk hits="2" offset="0394" domain="userortestcode"><source><![CDATA[_notes.Add(new NoteOut(Pitch.A3, grid[i, j].CurrentState * 4, 50,
                                                       grid[i, j].CurrentState % 5));]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                                ]]></source>
</chunk>
<chunk hits="6" offset="03c7" domain="userortestcode"><source><![CDATA[break;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                            }
                        case 6: ]]></source>
</chunk>
<chunk hits="2" offset="03c9" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                                ]]></source>
</chunk>
<chunk hits="2" offset="03ca" domain="userortestcode"><source><![CDATA[_notes.Add(new NoteOut(Pitch.A3, grid[i, j].CurrentState * 1, 50,
                                                       grid[i, j].CurrentState % 6));]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                                ]]></source>
</chunk>
<chunk hits="6" offset="03fb" domain="userortestcode"><source><![CDATA[break;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                            }
                        case 7: ]]></source>
</chunk>
<chunk hits="1" offset="03fd" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                                ]]></source>
</chunk>
<chunk hits="1" offset="03fe" domain="userortestcode"><source><![CDATA[_notes.Add(new NoteOut(Pitch.A3, grid[i, j].CurrentState * 1, 50,
                                                       grid[i, j].CurrentState % 7));]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                                ]]></source>
</chunk>
<chunk hits="3" offset="042f" domain="userortestcode"><source><![CDATA[break;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                            }
                    }
                ]]></source>
</chunk>
<chunk hits="38" offset="0431" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="0447" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="1" offset="045d" domain="userortestcode"><source><![CDATA[return _notes;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
        ]]></source>
</chunk>
<chunk hits="2" offset="0466" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
    }
}
]]></source>
</chunk>
</document>
<document src="C:\Users\Anders\Documents\automatones\Visual Studio\AutomaTones\AutomaTones\Model\MIDI\Mappers\MozartTranslator.cs" renderPrefix="s21"><chunk hits="-1" domain="unknown"><source><![CDATA[using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Midi;
using AutomaTones.Model.Automaton_Model;
using Microsoft.Pex.Framework;

namespace AutomaTones.Model.MIDI.Mappers
{
    [PexClass]
    partial class MozartTranslator : IMapper
    {
        private readonly List<NoteOut> _notes = new List<NoteOut>();
        bool switcher=false;
        int noteTranslator=12;

        [PexMethod]
        public List<NoteOut> Translate(State[,] grid) ]]></source>
</chunk>
<method name="Translate" namespace="AutomaTones.Model.MIDI.Mappers" type="AutomaTones.Model.MIDI.Mappers.MozartTranslator" typeName="MozartTranslator" token="60001e6" module="AutomaTones.exe"><hits><hit index="0" value="1"/>
<hit index="1" value="1"/>
<hit index="3" value="1"/>
<hit index="4" value="1"/>
<hit index="5" value="1"/>
<hit index="6" value="1"/>
<hit index="7" value="1"/>
<hit index="8" value="2"/>
<hit index="9" value="1"/>
<hit index="10" value="1"/>
<hit index="11" value="1"/>
<hit index="12" value="1"/>
<hit index="13" value="1"/>
<hit index="14" value="1"/>
<hit index="15" value="1"/>
<hit index="16" value="1"/>
<hit index="17" value="11"/>
<hit index="18" value="11"/>
<hit index="19" value="10"/>
<hit index="20" value="10"/>
<hit index="21" value="10"/>
<hit index="22" value="10"/>
<hit index="23" value="20"/>
<hit index="24" value="5"/>
<hit index="25" value="5"/>
<hit index="26" value="5"/>
<hit index="27" value="5"/>
<hit index="28" value="5"/>
<hit index="29" value="5"/>
<hit index="30" value="5"/>
<hit index="31" value="10"/>
<hit index="32" value="4"/>
<hit index="33" value="4"/>
<hit index="34" value="4"/>
<hit index="35" value="4"/>
<hit index="36" value="4"/>
<hit index="37" value="4"/>
<hit index="38" value="8"/>
<hit index="39" value="4"/>
<hit index="41" value="4"/>
<hit index="42" value="4"/>
<hit index="43" value="4"/>
<hit index="44" value="4"/>
<hit index="45" value="8"/>
<hit index="46" value="2"/>
<hit index="47" value="2"/>
<hit index="48" value="2"/>
<hit index="49" value="2"/>
<hit index="50" value="2"/>
<hit index="51" value="2"/>
<hit index="52" value="4"/>
<hit index="53" value="1"/>
<hit index="54" value="1"/>
<hit index="55" value="1"/>
<hit index="56" value="1"/>
<hit index="57" value="1"/>
<hit index="58" value="1"/>
<hit index="59" value="2"/>
<hit index="60" value="1"/>
<hit index="62" value="1"/>
<hit index="63" value="1"/>
<hit index="64" value="1"/>
<hit index="65" value="1"/>
<hit index="66" value="2"/>
<hit index="67" value="2"/>
<hit index="68" value="2"/>
<hit index="69" value="2"/>
<hit index="70" value="2"/>
<hit index="71" value="2"/>
<hit index="72" value="2"/>
<hit index="73" value="4"/>
<hit index="74" value="2"/>
<hit index="75" value="2"/>
<hit index="76" value="2"/>
<hit index="77" value="2"/>
<hit index="78" value="2"/>
<hit index="79" value="2"/>
<hit index="80" value="4"/>
<hit index="81" value="2"/>
<hit index="83" value="2"/>
<hit index="84" value="2"/>
<hit index="85" value="2"/>
<hit index="86" value="2"/>
<hit index="87" value="4"/>
<hit index="88" value="1"/>
<hit index="89" value="1"/>
<hit index="90" value="1"/>
<hit index="91" value="1"/>
<hit index="92" value="1"/>
<hit index="93" value="1"/>
<hit index="94" value="2"/>
<hit index="95" value="1"/>
<hit index="96" value="1"/>
<hit index="97" value="1"/>
<hit index="98" value="1"/>
<hit index="99" value="1"/>
<hit index="100" value="1"/>
<hit index="101" value="2"/>
<hit index="102" value="1"/>
<hit index="104" value="1"/>
<hit index="105" value="1"/>
<hit index="106" value="1"/>
<hit index="107" value="1"/>
<hit index="108" value="2"/>
<hit index="109" value="1"/>
<hit index="110" value="1"/>
<hit index="111" value="1"/>
<hit index="112" value="1"/>
<hit index="113" value="1"/>
<hit index="114" value="1"/>
<hit index="115" value="2"/>
<hit index="116" value="1"/>
<hit index="117" value="1"/>
<hit index="118" value="1"/>
<hit index="119" value="1"/>
<hit index="120" value="1"/>
<hit index="121" value="1"/>
<hit index="122" value="2"/>
<hit index="123" value="1"/>
<hit index="125" value="1"/>
<hit index="126" value="1"/>
<hit index="127" value="1"/>
<hit index="128" value="1"/>
<hit index="129" value="2"/>
<hit index="130" value="13"/>
<hit index="131" value="3"/>
<hit index="132" value="7"/>
<hit index="133" value="1"/>
<hit index="134" value="1"/>
<hit index="135" value="1"/>
<hit index="136" value="1"/>
<hit index="137" value="1"/>
<hit index="138" value="1"/>
<hit index="139" value="6"/>
<hit index="140" value="2"/>
<hit index="141" value="2"/>
<hit index="142" value="1"/>
<hit index="143" value="1"/>
<hit index="144" value="1"/>
<hit index="145" value="11"/>
<hit index="146" value="7"/>
<hit index="147" value="1"/>
<hit index="148" value="1"/>
</hits>
<tags><tag offset="00e4">call to uninstrumented method System.Int32 System.Random.Next(System.Int32 maxValue)</tag>
</tags>
<coverage domain="userortestcode" unit="block" covered="42" total="42" coveredRatio="1"/>
</method>
<chunk hits="1" offset="0000" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="1" offset="0001" domain="userortestcode"><source><![CDATA[Random random = new Random();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="1" offset="0007" domain="userortestcode"><source><![CDATA[_notes.Clear();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="0013" domain="userortestcode"><source><![CDATA[if (switcher)]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="1" offset="0022" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="1" offset="0023" domain="userortestcode"><source><![CDATA[noteTranslator *= -1;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="2" offset="0031" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            else ]]></source>
</chunk>
<chunk hits="1" offset="0034" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="1" offset="0035" domain="userortestcode"><source><![CDATA[noteTranslator *= -1;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="2" offset="0043" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            for (]]></source>
</chunk>
<chunk hits="4" offset="0044" domain="userortestcode"><source><![CDATA[int x = 0;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="34" offset="01e3" domain="userortestcode"><source><![CDATA[x < grid.GetLength(0)]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[;]]></source>
</chunk>
<chunk hits="30" offset="01df" domain="userortestcode"><source><![CDATA[x++]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[)
                for (]]></source>
</chunk>
<chunk hits="7" offset="004b" domain="userortestcode"><source><![CDATA[int y = 0;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="14" offset="01cc" domain="userortestcode"><source><![CDATA[y < grid.GetLength(1)]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[; ]]></source>
</chunk>
<chunk hits="7" offset="01c8" domain="userortestcode"><source><![CDATA[y++]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[)
                    ]]></source>
</chunk>
<chunk hits="11" offset="0052" domain="userortestcode"><source><![CDATA[if (grid[x, y].CurrentState > 0)]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="5" offset="006e" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                        ]]></source>
</chunk>
<chunk hits="5" offset="006f" domain="userortestcode"><source><![CDATA[if (grid[x, y].CurrentState == 1)]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="4" offset="0088" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                            ]]></source>
</chunk>
<chunk hits="4" offset="0089" domain="userortestcode"><source><![CDATA[_notes.Add(new NoteOut(Pitch.C1+noteTranslator, random.Next(128)));]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                            ]]></source>
</chunk>
<chunk hits="12" offset="00b0" domain="userortestcode"><source><![CDATA[break;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                        }
                        ]]></source>
</chunk>
<chunk hits="2" offset="00b5" domain="userortestcode"><source><![CDATA[if (grid[x, y].CurrentState == 2)]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                        ]]></source>
</chunk>
<chunk hits="1" offset="00ce" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                            ]]></source>
</chunk>
<chunk hits="1" offset="00cf" domain="userortestcode" tag="true"><tooltip><![CDATA[call to uninstrumented method System.Int32 System.Random.Next(System.Int32 maxValue)]]></tooltip>
<source><![CDATA[_notes.Add(new NoteOut(Pitch.A2 - noteTranslator, random.Next(128)));]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                            ]]></source>
</chunk>
<chunk hits="3" offset="00f6" domain="userortestcode"><source><![CDATA[break;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                        }
                        ]]></source>
</chunk>
<chunk hits="2" offset="00fb" domain="userortestcode"><source><![CDATA[if (grid[x, y].CurrentState == 3)]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="2" offset="0114" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                            ]]></source>
</chunk>
<chunk hits="2" offset="0115" domain="userortestcode"><source><![CDATA[_notes.Add(new NoteOut(Pitch.E0 + noteTranslator, random.Next(128)));]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                            ]]></source>
</chunk>
<chunk hits="6" offset="013c" domain="userortestcode"><source><![CDATA[break;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                        }
                        ]]></source>
</chunk>
<chunk hits="1" offset="0141" domain="userortestcode"><source><![CDATA[if (grid[x, y].CurrentState == 4)]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                        ]]></source>
</chunk>
<chunk hits="1" offset="015a" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                            ]]></source>
</chunk>
<chunk hits="1" offset="015b" domain="userortestcode"><source><![CDATA[_notes.Add(new NoteOut(Pitch.F0 - noteTranslator, random.Next(128)));]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                            ]]></source>
</chunk>
<chunk hits="3" offset="0182" domain="userortestcode"><source><![CDATA[break;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                        }
                        ]]></source>
</chunk>
<chunk hits="1" offset="0184" domain="userortestcode"><source><![CDATA[if (grid[x, y].CurrentState == 5)]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="1" offset="019d" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                            ]]></source>
</chunk>
<chunk hits="1" offset="019e" domain="userortestcode"><source><![CDATA[_notes.Add(new NoteOut(Pitch.D0 + noteTranslator, random.Next(128)));]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                            ]]></source>
</chunk>
<chunk hits="3" offset="01c5" domain="userortestcode"><source><![CDATA[break;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                        }
                    ]]></source>
</chunk>
<chunk hits="1" offset="01c7" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="1" offset="01f6" domain="userortestcode"><source><![CDATA[switcher = !switcher;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="2" offset="0205" domain="userortestcode"><source><![CDATA[return _notes;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
        ]]></source>
</chunk>
<chunk hits="1" offset="020e" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
    }
}
]]></source>
</chunk>
</document>
<document src="C:\Users\Anders\Documents\automatones\Visual Studio\AutomaTones\AutomaTones\Model\MIDI\Mappers\SampleTranslator.cs" renderPrefix="s22"><chunk hits="-1" domain="unknown"><source><![CDATA[using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Midi;
using AutomaTones.Model.Automaton_Model;
using Microsoft.Pex.Framework;

namespace AutomaTones.Model.MIDI.Mappers
{
    [PexClass]
    partial class SampleTranslator : IMapper
    {
        private readonly List<NoteOut> _notes = new List<NoteOut>();
        int counter = 0;

        [PexMethod]
        public List<NoteOut> Translate(State[,] grid)
        ]]></source>
</chunk>
<method name="Translate" namespace="AutomaTones.Model.MIDI.Mappers" type="AutomaTones.Model.MIDI.Mappers.SampleTranslator" typeName="SampleTranslator" token="60000bd" module="AutomaTones.exe"><hits><hit index="0" value="1"/>
<hit index="1" value="1"/>
<hit index="3" value="1"/>
<hit index="4" value="1"/>
<hit index="5" value="1"/>
<hit index="6" value="1"/>
<hit index="7" value="1"/>
<hit index="8" value="2"/>
<hit index="9" value="1"/>
<hit index="83" value="1"/>
<hit index="84" value="1"/>
<hit index="85" value="1"/>
<hit index="86" value="1"/>
<hit index="102" value="1"/>
<hit index="103" value="1"/>
<hit index="110" value="1"/>
</hits>
<coverage domain="userortestcode" unit="block" covered="5" total="35" coveredRatio="0.14285714285714285"/>
</method>
<chunk hits="1" offset="0000" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="1" offset="0001" domain="userortestcode"><source><![CDATA[Random random = new Random();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="1" offset="0007" domain="userortestcode"><source><![CDATA[_notes.Clear();]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="0013" domain="userortestcode"><source><![CDATA[if (counter > 12)]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="0" offset="0029" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                for (]]></source>
</chunk>
<chunk hits="0" offset="002a" domain="userortestcode"><source><![CDATA[int x = 0;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="0" offset="0128" domain="userortestcode"><source><![CDATA[x < grid.GetLength(0)]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[; ]]></source>
</chunk>
<chunk hits="0" offset="0124" domain="userortestcode"><source><![CDATA[x++]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[)
                    for (]]></source>
</chunk>
<chunk hits="0" offset="0031" domain="userortestcode"><source><![CDATA[int y = 0;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="0" offset="0111" domain="userortestcode"><source><![CDATA[y < grid.GetLength(1)]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[; ]]></source>
</chunk>
<chunk hits="0" offset="010d" domain="userortestcode"><source><![CDATA[y++]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[)
                        ]]></source>
</chunk>
<chunk hits="0" offset="0038" domain="userortestcode"><source><![CDATA[if (grid[x, y].CurrentState > 0)]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                        ]]></source>
</chunk>
<chunk hits="0" offset="0054" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                            ]]></source>
</chunk>
<chunk hits="0" offset="0055" domain="userortestcode"><source><![CDATA[if (grid[x, y].CurrentState == 1)]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                            ]]></source>
</chunk>
<chunk hits="0" offset="006e" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                                ]]></source>
</chunk>
<chunk hits="0" offset="006f" domain="userortestcode"><source><![CDATA[_notes.Add(new NoteOut(Pitch.G0, random.Next(128)));]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                                ]]></source>
</chunk>
<chunk hits="0" offset="008f" domain="userortestcode"><source><![CDATA[break;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                            }
                            ]]></source>
</chunk>
<chunk hits="0" offset="0094" domain="userortestcode"><source><![CDATA[if (grid[x, y].CurrentState == 3)]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                            ]]></source>
</chunk>
<chunk hits="0" offset="00ad" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                                ]]></source>
</chunk>
<chunk hits="0" offset="00ae" domain="userortestcode"><source><![CDATA[_notes.Add(new NoteOut(Pitch.G0, random.Next(128)));]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                                ]]></source>
</chunk>
<chunk hits="0" offset="00ce" domain="userortestcode"><source><![CDATA[break;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                            }
                            ]]></source>
</chunk>
<chunk hits="0" offset="00d0" domain="userortestcode"><source><![CDATA[if (grid[x, y].CurrentState == 5)]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                            ]]></source>
</chunk>
<chunk hits="0" offset="00e9" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                                ]]></source>
</chunk>
<chunk hits="0" offset="00ea" domain="userortestcode"><source><![CDATA[_notes.Add(new NoteOut(Pitch.G0, random.Next(128)));]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                                ]]></source>
</chunk>
<chunk hits="0" offset="010a" domain="userortestcode"><source><![CDATA[break;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                            }
                        ]]></source>
</chunk>
<chunk hits="0" offset="010c" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="013b" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="1" offset="013c" domain="userortestcode"><source><![CDATA[counter++;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="2" offset="014a" domain="userortestcode"><source><![CDATA[if (counter == 15)]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="0" offset="015d" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="0" offset="015e" domain="userortestcode"><source><![CDATA[counter = 0;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
                ]]></source>
</chunk>
<chunk hits="0" offset="0165" domain="userortestcode"><source><![CDATA[_notes.Add(new NoteOut(Pitch.A3, 0, 30, random.Next(128)));]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="0" offset="0186" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="1" offset="0187" domain="userortestcode"><source><![CDATA[return _notes;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
        ]]></source>
</chunk>
<chunk hits="1" offset="0190" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
    }
}
]]></source>
</chunk>
</document>
<document src="C:\Users\Anders\Documents\automatones\Visual Studio\AutomaTones\AutomaTones\Model\Tools\Convertor.cs" renderPrefix="s23"><chunk hits="-1" domain="unknown"><source><![CDATA[using System.Diagnostics.Contracts;
using AutomaTones.Model.Automaton_Model;
using Microsoft.Pex.Framework;

namespace AutomaTones.Model.Tools
{
    /// <summary>
    /// Conversions tools.
    /// </summary>
    /// <author>Anders Bech Mellson, anbh@itu.dk</author>
    [PexClass]
    partial class Convertor
    {
        /// <summary>
        /// Converts a Cellular Automaton to a State[,] grid.
        /// </summary>
        [PexMethod]
        public static State[,] CAToStateGrid(CellularAutomaton ca) ]]></source>
</chunk>
<method name="CAToStateGrid" namespace="AutomaTones.Model.Tools" type="AutomaTones.Model.Tools.Convertor" typeName="Convertor" token="60001c8" module="AutomaTones.exe"><hits><hit index="0" value="1"/>
<hit index="1" value="1"/>
<hit index="2" value="1"/>
<hit index="3" value="1"/>
<hit index="4" value="2"/>
<hit index="5" value="1"/>
<hit index="7" value="1"/>
<hit index="8" value="1"/>
<hit index="10" value="9"/>
<hit index="11" value="9"/>
<hit index="12" value="9"/>
<hit index="13" value="9"/>
<hit index="14" value="9"/>
<hit index="15" value="9"/>
<hit index="16" value="9"/>
<hit index="17" value="9"/>
<hit index="18" value="9"/>
<hit index="19" value="9"/>
<hit index="20" value="9"/>
<hit index="21" value="18"/>
<hit index="22" value="9"/>
<hit index="23" value="9"/>
<hit index="24" value="9"/>
<hit index="25" value="18"/>
<hit index="26" value="9"/>
<hit index="27" value="9"/>
<hit index="28" value="9"/>
<hit index="29" value="9"/>
<hit index="30" value="3"/>
<hit index="31" value="1"/>
<hit index="32" value="9"/>
<hit index="33" value="3"/>
<hit index="34" value="1"/>
<hit index="35" value="1"/>
<hit index="36" value="1"/>
</hits>
<coverage domain="userortestcode" unit="block" covered="8" total="8" coveredRatio="1"/>
</method>
<chunk hits="1" offset="0000" domain="userortestcode"><source><![CDATA[{]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            Contract.Requires(ca!=null);
            ]]></source>
</chunk>
<chunk hits="1" offset="0001" domain="userortestcode"><source><![CDATA[uint size = ca.DimensionSize;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="3" offset="0008" domain="userortestcode"><source><![CDATA[State[,] stateGrid = new State[size,size];]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            for (]]></source>
</chunk>
<chunk hits="2" offset="0012" domain="userortestcode"><source><![CDATA[int x = 0;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="5" offset="0055" domain="userortestcode"><source><![CDATA[x < size]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[; ]]></source>
</chunk>
<chunk hits="3" offset="0051" domain="userortestcode"><source><![CDATA[x++]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[)
                for (]]></source>
</chunk>
<chunk hits="3" offset="0016" domain="userortestcode"><source><![CDATA[int y = 0;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[ ]]></source>
</chunk>
<chunk hits="30" offset="0045" domain="userortestcode"><source><![CDATA[y < size]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[; ]]></source>
</chunk>
<chunk hits="27" offset="0041" domain="userortestcode"><source><![CDATA[y++]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[)
                    ]]></source>
</chunk>
<chunk hits="9" offset="001a" domain="userortestcode"><source><![CDATA[stateGrid[x, y] = ca.GetCell(x,y).State;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
            ]]></source>
</chunk>
<chunk hits="1" offset="0061" domain="userortestcode"><source><![CDATA[return stateGrid;]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
        ]]></source>
</chunk>
<chunk hits="1" offset="0066" domain="userortestcode"><source><![CDATA[}]]></source>
</chunk>
<chunk hits="-1" domain="unknown"><source><![CDATA[
    }
}
]]></source>
</chunk>
</document>
<document src="(no sources available for some parts of AutomaTones, Midi, System.Windows.Forms, System.Drawing, AutomaTones.Explorables, Midi.Explorables)" missing="true"><method name="set_View" type="AutomaTones.Controller.CAViewController" token="600010b" module="AutomaTones.exe"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="get_ChosenCAType" type="AutomaTones.Controller.CAViewController" token="600010c" module="AutomaTones.exe"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="get_IsPLaying" type="AutomaTones.Controller.CAViewController" token="60000e4" module="AutomaTones.exe"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="get_View" type="AutomaTones.Controller.CAViewController" token="600010a" module="AutomaTones.exe"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="get_TimeStamp" type="AutomaTones.Controller.CAViewController" token="6000108" module="AutomaTones.exe"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="get_IsPaused" type="AutomaTones.Controller.CAViewController" token="60000e6" module="AutomaTones.exe"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="set_IsPaused" type="AutomaTones.Controller.CAViewController" token="60000e7" module="AutomaTones.exe"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="set_Volume" type="AutomaTones.Controller.CAViewController" token="60000e9" module="AutomaTones.exe"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="get_InstalledDevices" type="Midi.OutputDevice" token="600009f" module="Midi.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="0" total="0" coveredRatio="0"/>
</method>
<method name="set_SpaceMin" type="AutomaTones.Model.Automaton_Model.State" token="60001cb" module="AutomaTones.exe"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="set_SpaceMax" type="AutomaTones.Model.Automaton_Model.State" token="60001cd" module="AutomaTones.exe"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="set_Channels" type="AutomaTones.Controller.CAViewController" token="60000eb" module="AutomaTones.exe"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="get_NativeMouseWheelSupport" type="System.Windows.Forms.SystemInformation" token="600400f" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="4" total="4" coveredRatio="1"/>
</method>
<method name="get_CreateParams" type="System.Windows.Forms.Control" token="60006a9" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="45" total="62" coveredRatio="0.72580645161290325"/>
</method>
<method name=".ctor" type="System.Windows.Forms.Control" token="6000658" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="32" total="36" coveredRatio="0.88888888888888884"/>
</method>
<method name="get_DefaultFont" type="System.Drawing.SystemFonts" token="600054d" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="25" total="48" coveredRatio="0.52083333333333337"/>
</method>
<method name="FromHfont" type="System.Drawing.Font" token="600065b" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="9" total="9" coveredRatio="1"/>
</method>
<method name="GetObject" type="System.Drawing.SafeNativeMethods" token="60006e6" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="4" total="4" coveredRatio="1"/>
</method>
<method name="GetDC" type="System.Drawing.UnsafeNativeMethods" token="6000edc" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="3" total="3" coveredRatio="1"/>
</method>
<method name="FromLogFont" type="System.Drawing.Font" token="600065d" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="13" total="27" coveredRatio="0.48148148148148145"/>
</method>
<method name=".ctor" type="System.Drawing.Font" token="600067d" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="17" total="25" coveredRatio="0.68"/>
</method>
<method name="ReleaseDC" type="System.Drawing.UnsafeNativeMethods" token="6000ee0" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="4" total="4" coveredRatio="1"/>
</method>
<method name="FromHdcInternal" type="System.Drawing.Graphics" token="6000227" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="5" total="7" coveredRatio="0.7142857142857143"/>
</method>
<method name="get_DpiY" type="System.Drawing.Graphics" token="600024b" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="5" total="7" coveredRatio="0.7142857142857143"/>
</method>
<method name="GetHeight" type="System.Drawing.Font" token="6000671" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="8" total="12" coveredRatio="0.66666666666666663"/>
</method>
<method name="GetEmHeight" type="System.Drawing.FontFamily" token="600069b" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="5" total="7" coveredRatio="0.7142857142857143"/>
</method>
<method name="GetLineSpacing" type="System.Drawing.FontFamily" token="600069e" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="5" total="7" coveredRatio="0.7142857142857143"/>
</method>
<method name="get_IsShutdown" type="System.Drawing.SafeNativeMethods+Gdip" token="60006f4" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="3" total="3" coveredRatio="1"/>
</method>
<method name="GdipDeleteGraphics" type="System.Drawing.SafeNativeMethods+Gdip" token="600086c" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="4" total="5" coveredRatio="0.8"/>
</method>
<method name="CreateNativeFont" type="System.Drawing.Font" token="600067b" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="6" total="13" coveredRatio="0.46153846153846156"/>
</method>
<method name="GdipDeleteFont" type="System.Drawing.SafeNativeMethods+Gdip" token="6000920" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="4" total="5" coveredRatio="0.8"/>
</method>
<method name="get_Height" type="System.Drawing.Font" token="6000678" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="3" total="3" coveredRatio="1"/>
</method>
<method name="GetName" type="System.Drawing.FontFamily" token="6000694" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="7" total="9" coveredRatio="0.77777777777777779"/>
</method>
<method name="CreateCompatibleDC" type="System.Windows.Forms.Internal.IntUnsafeNativeMethods" token="600559b" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="3" total="3" coveredRatio="1"/>
</method>
<method name="GetCurrentObject" type="System.Windows.Forms.Internal.IntUnsafeNativeMethods" token="60055bc" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name="SaveDC" type="System.Windows.Forms.Internal.IntUnsafeNativeMethods" token="600559d" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name="GetDeviceCapabilities" type="System.Windows.Forms.Internal.DeviceContext" token="6005555" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="4" total="4" coveredRatio="1"/>
</method>
<method name="CreateFontIndirect" type="System.Windows.Forms.Internal.IntUnsafeNativeMethods" token="60055b2" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="3" total="3" coveredRatio="1"/>
</method>
<method name="GetObject" type="System.Windows.Forms.Internal.IntUnsafeNativeMethods" token="60055b8" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="4" total="4" coveredRatio="1"/>
</method>
<method name="SelectObject" type="System.Windows.Forms.Internal.IntUnsafeNativeMethods" token="60055ba" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name="GetMapMode" type="System.Windows.Forms.Internal.IntUnsafeNativeMethods" token="60055de" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name="GetTextMetrics" type="System.Windows.Forms.Internal.IntUnsafeNativeMethods" token="60055e9" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="3" total="5" coveredRatio="0.6"/>
</method>
<method name="DrawTextEx" type="System.Windows.Forms.Internal.IntUnsafeNativeMethods" token="60055ce" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="3" total="12" coveredRatio="0.25"/>
</method>
<method name="SystemColorToArgb" type="System.Drawing.KnownColorTable" token="6000eca" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="3" total="3" coveredRatio="1"/>
</method>
<method name="CreateFontFamily" type="System.Drawing.FontFamily" token="60006a2" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="6" total="20" coveredRatio="0.3"/>
</method>
<method name="Create" type="AutomaTones.View.GUI_View.CaControlFactory" token="6000002" module="&lt;In Memory Module&gt;"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="24" coveredRatio="0.041666666666666664"/>
</method>
<method name=".ctor" type="System.Windows.Forms.UserControl" token="6004bae" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="6" total="6" coveredRatio="1"/>
</method>
<method name=".ctor" type="System.Windows.Forms.ContainerControl" token="6000aa8" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="4" total="4" coveredRatio="1"/>
</method>
<method name=".ctor" type="System.Windows.Forms.ScrollableControl" token="6000a51" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="5" total="5" coveredRatio="1"/>
</method>
<method name=".ctor" type="System.Windows.Forms.Control" token="6000657" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name=".ctor" type="System.Windows.Forms.PropertyStore" token="6003c07" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name=".ctor" type="System.Windows.Forms.Control+ControlNativeWindow" token="60009f0" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name=".ctor" type="System.Windows.Forms.NativeWindow" token="60009c1" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="3" total="3" coveredRatio="1"/>
</method>
<method name="set_RequiredScalingEnabled" type="System.Windows.Forms.Control" token="6000903" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="3" total="3" coveredRatio="1"/>
</method>
<method name="set_RequiredScaling" type="System.Windows.Forms.Control" token="6000901" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="SetStyle" type="System.Windows.Forms.Control" token="6000855" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="4" total="7" coveredRatio="0.5714285714285714"/>
</method>
<method name="InitMouseWheelSupport" type="System.Windows.Forms.Control" token="6000931" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="5" total="11" coveredRatio="0.45454545454545453"/>
</method>
<method name="get_DefaultMargin" type="System.Windows.Forms.Control" token="60006b4" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="op_Inequality" type="System.Windows.Forms.Padding" token="6003934" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name="op_Equality" type="System.Windows.Forms.Padding" token="6003933" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="13" total="13" coveredRatio="1"/>
</method>
<method name="get_Left" type="System.Windows.Forms.Padding" token="6003925" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="3" total="3" coveredRatio="1"/>
</method>
<method name="get_Top" type="System.Windows.Forms.Padding" token="6003929" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="get_Right" type="System.Windows.Forms.Padding" token="6003927" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="3" total="3" coveredRatio="1"/>
</method>
<method name="get_Bottom" type="System.Windows.Forms.Padding" token="6003923" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="3" total="3" coveredRatio="1"/>
</method>
<method name="get_DefaultMinimumSize" type="System.Windows.Forms.Control" token="60006b6" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="op_Inequality" type="System.Drawing.Size" token="60004df" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name="op_Equality" type="System.Drawing.Size" token="60004de" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="6" total="7" coveredRatio="0.8571428571428571"/>
</method>
<method name="get_Width" type="System.Drawing.Size" token="60004e2" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="get_Height" type="System.Drawing.Size" token="60004e4" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="get_DefaultMaximumSize" type="System.Windows.Forms.Control" token="60006b5" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="get_DefaultSize" type="System.Windows.Forms.UserControl" token="6004bbc" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name=".ctor" type="System.Drawing.Size" token="60004da" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="xClearPreferredSizeCache" type="System.Windows.Forms.Layout.CommonProperties" token="6004e3e" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="3" total="3" coveredRatio="1"/>
</method>
<method name="System.Windows.Forms.Layout.IArrangedElement.get_Properties" type="System.Windows.Forms.Control" token="6000879" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name="get_Properties" type="System.Windows.Forms.Control" token="60006f9" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="SetSize" type="System.Windows.Forms.PropertyStore" token="6003bfe" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="7" total="10" coveredRatio="0.7"/>
</method>
<method name="GetObject" type="System.Windows.Forms.PropertyStore" token="6003bf8" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="9" total="11" coveredRatio="0.81818181818181823"/>
</method>
<method name="SplitKey" type="System.Windows.Forms.PropertyStore" token="6003c04" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="LocateObjectEntry" type="System.Windows.Forms.PropertyStore" token="6003c03" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="17" total="28" coveredRatio="0.6071428571428571"/>
</method>
<method name=".ctor" type="System.Windows.Forms.PropertyStore+SizeWrapper" token="60067e9" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name="SetObject" type="System.Windows.Forms.PropertyStore" token="6003c00" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="15" total="16" coveredRatio="0.9375"/>
</method>
<method name="get_CreateParams" type="System.Windows.Forms.UserControl" token="6004bbb" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="10" total="15" coveredRatio="0.66666666666666663"/>
</method>
<method name="get_CreateParams" type="System.Windows.Forms.ContainerControl" token="6000ab7" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="4" total="4" coveredRatio="1"/>
</method>
<method name="get_CreateParams" type="System.Windows.Forms.ScrollableControl" token="6000a5a" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="16" total="22" coveredRatio="0.72727272727272729"/>
</method>
<method name=".ctor" type="System.Windows.Forms.CreateParams" token="60017cf" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name="set_Style" type="System.Windows.Forms.CreateParams" token="60017bd" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="set_ExStyle" type="System.Windows.Forms.CreateParams" token="60017bf" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="set_ClassStyle" type="System.Windows.Forms.CreateParams" token="60017c1" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="set_Caption" type="System.Windows.Forms.CreateParams" token="60017bb" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="set_X" type="System.Windows.Forms.CreateParams" token="60017c3" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="set_Y" type="System.Windows.Forms.CreateParams" token="60017c5" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="set_Width" type="System.Windows.Forms.CreateParams" token="60017c7" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="set_Height" type="System.Windows.Forms.CreateParams" token="60017c9" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="GetStyle" type="System.Windows.Forms.Control" token="60007b6" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="set_Parent" type="System.Windows.Forms.CreateParams" token="60017cb" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="get_Style" type="System.Windows.Forms.CreateParams" token="60017bc" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="get_Enabled" type="System.Windows.Forms.Control" token="60006c2" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="8" total="9" coveredRatio="0.88888888888888884"/>
</method>
<method name="GetState" type="System.Windows.Forms.Control" token="60007b4" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="get_ParentInternal" type="System.Windows.Forms.Control" token="60006f5" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="get_Parent" type="System.Windows.Forms.CreateParams" token="60017ca" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="get_IsActiveX" type="System.Windows.Forms.Control" token="60006dc" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name="GetState2" type="System.Windows.Forms.Control" token="60007b5" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="get_RightToLeft" type="System.Windows.Forms.Control" token="6000706" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="12" total="12" coveredRatio="1"/>
</method>
<method name="GetInteger" type="System.Windows.Forms.PropertyStore" token="6003bf6" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="7" total="11" coveredRatio="0.63636363636363635"/>
</method>
<method name="LocateIntegerEntry" type="System.Windows.Forms.PropertyStore" token="6003c02" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="16" total="28" coveredRatio="0.5714285714285714"/>
</method>
<method name="get_DefaultRightToLeft" type="System.Windows.Forms.Control" token="60008ec" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="get_HScroll" type="System.Windows.Forms.ScrollableControl" token="6000a5d" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name="GetScrollState" type="System.Windows.Forms.ScrollableControl" token="6000a65" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="get_HorizontalScroll" type="System.Windows.Forms.ScrollableControl" token="6000a5f" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="4" total="4" coveredRatio="1"/>
</method>
<method name=".ctor" type="System.Windows.Forms.HScrollProperties" token="6002f03" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name=".ctor" type="System.Windows.Forms.ScrollProperties" token="6002eee" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name="get_Visible" type="System.Windows.Forms.ScrollProperties" token="6002eff" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="get_VScroll" type="System.Windows.Forms.ScrollableControl" token="6000a60" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name="get_VerticalScroll" type="System.Windows.Forms.ScrollableControl" token="6000a62" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="4" total="4" coveredRatio="1"/>
</method>
<method name=".ctor" type="System.Windows.Forms.VScrollProperties" token="6004bd4" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name="get_ExStyle" type="System.Windows.Forms.CreateParams" token="60017be" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="InstallIfNeeded" type="System.Windows.Forms.WindowsFormsSynchronizationContext" token="6004daf" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="21" total="22" coveredRatio="0.95454545454545459"/>
</method>
<method name="get_AutoInstall" type="System.Windows.Forms.WindowsFormsSynchronizationContext" token="6004da8" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name=".ctor" type="System.Windows.Forms.WindowsFormsSynchronizationContext" token="6004da3" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="8" total="8" coveredRatio="1"/>
</method>
<method name="set_DestinationThread" type="System.Windows.Forms.WindowsFormsSynchronizationContext" token="6004dae" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="4" total="4" coveredRatio="1"/>
</method>
<method name="SetScrollState" type="System.Windows.Forms.ScrollableControl" token="6000a75" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="3" coveredRatio="0.66666666666666663"/>
</method>
<method name="SetState2" type="System.Windows.Forms.Control" token="600096a" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="3" total="3" coveredRatio="1"/>
</method>
<method name="SetState" type="System.Windows.Forms.Control" token="6000854" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="3" total="3" coveredRatio="1"/>
</method>
<method name=".ctor" type="System.Windows.Forms.Panel" token="6002c18" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="6" total="6" coveredRatio="1"/>
</method>
<method name="get_DefaultSize" type="System.Windows.Forms.Panel" token="6002c22" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name="get_CreateParams" type="System.Windows.Forms.Panel" token="6002c21" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="10" total="15" coveredRatio="0.66666666666666663"/>
</method>
<method name="set_TabStop" type="System.Windows.Forms.Panel" token="6002c2b" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name="set_TabStop" type="System.Windows.Forms.Control" token="6000716" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="7" total="8" coveredRatio="0.875"/>
</method>
<method name="get_TabStop" type="System.Windows.Forms.Control" token="6000715" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name="get_TabStopInternal" type="System.Windows.Forms.Control" token="6000717" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="set_TabStopInternal" type="System.Windows.Forms.Control" token="6000904" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="4" total="4" coveredRatio="1"/>
</method>
<method name="get_IsHandleCreated" type="System.Windows.Forms.Control" token="60006d8" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="3" total="3" coveredRatio="1"/>
</method>
<method name="get_Handle" type="System.Windows.Forms.NativeWindow" token="60009c3" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="OnTabStopChanged" type="System.Windows.Forms.Control" token="60007e9" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="4" total="5" coveredRatio="0.8"/>
</method>
<method name="get_CanRaiseEvents" type="System.Windows.Forms.Control" token="600068d" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="3" total="5" coveredRatio="0.6"/>
</method>
<method name=".ctor" type="System.Windows.Forms.ComboBox" token="60014b5" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="5" total="5" coveredRatio="1"/>
</method>
<method name=".ctor" type="System.Windows.Forms.ComboBox+AutoCompleteDropDownFinder" token="6001597" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name=".ctor" type="System.Windows.Forms.ListControl" token="6001235" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name="get_DefaultSize" type="System.Windows.Forms.ComboBox" token="60014c7" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="3" total="3" coveredRatio="1"/>
</method>
<method name="get_PreferredHeight" type="System.Windows.Forms.ComboBox" token="60014e8" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="15" total="32" coveredRatio="0.46875"/>
</method>
<method name="get_FormattingEnabled" type="System.Windows.Forms.ListControl" token="6001214" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="get_Font" type="System.Windows.Forms.Control" token="60006c7" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="12" total="20" coveredRatio="0.6"/>
</method>
<method name="GetObject" type="System.Windows.Forms.PropertyStore" token="6003bf7" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name="GetParentFont" type="System.Windows.Forms.Control" token="60008f3" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="9" total="9" coveredRatio="1"/>
</method>
<method name="get_AmbientPropertiesService" type="System.Windows.Forms.Control" token="60008e0" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="9" total="15" coveredRatio="0.6"/>
</method>
<method name="get_Site" type="System.Windows.Forms.Control" token="600070b" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name="get_DefaultFont" type="System.Windows.Forms.Control" token="60006b2" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="4" total="4" coveredRatio="1"/>
</method>
<method name=".ctor" type="System.Drawing.SafeNativeMethods+LOGFONT" token="6000f11" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name="Add" type="System.Internal.HandleCollector" token="6000dbd" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name="Add" type="System.Internal.HandleCollector+HandleType" token="6000dc5" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="12" total="18" coveredRatio="0.66666666666666663"/>
</method>
<method name="NeedCollection" type="System.Internal.HandleCollector+HandleType" token="6000dc7" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="5" total="8" coveredRatio="0.625"/>
</method>
<method name=".ctor" type="System.Drawing.FontFamily" token="60006a0" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="3" total="3" coveredRatio="1"/>
</method>
<method name="SetNativeFamily" type="System.Drawing.FontFamily" token="600069f" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="SetFontFamily" type="System.Drawing.Font" token="6000681" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="4" total="4" coveredRatio="1"/>
</method>
<method name="Initialize" type="System.Drawing.Font" token="600067f" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="17" total="24" coveredRatio="0.70833333333333337"/>
</method>
<method name="Remove" type="System.Internal.HandleCollector" token="6000dc1" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name="Remove" type="System.Internal.HandleCollector+HandleType" token="6000dc8" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="11" total="14" coveredRatio="0.7857142857142857"/>
</method>
<method name="FontInPoints" type="System.Drawing.SystemFonts" token="6000552" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="7" total="7" coveredRatio="1"/>
</method>
<method name="get_FontFamily" type="System.Drawing.Font" token="6000660" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="get_SizeInPoints" type="System.Drawing.Font" token="6000676" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="19" total="19" coveredRatio="1"/>
</method>
<method name="get_Unit" type="System.Drawing.Font" token="6000677" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name=".ctor" type="System.Drawing.Graphics" token="6000320" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="4" total="6" coveredRatio="0.66666666666666663"/>
</method>
<method name="get_NativeGraphics" type="System.Drawing.Graphics" token="6000321" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="get_NativeFont" type="System.Drawing.Font" token="6000680" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="get_Style" type="System.Drawing.Font" token="6000674" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="get_NativeFamily" type="System.Drawing.FontFamily" token="60006a3" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="Dispose" type="System.Drawing.Graphics" token="6000230" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="3" total="3" coveredRatio="1"/>
</method>
<method name="Dispose" type="System.Drawing.Graphics" token="6000322" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="11" total="23" coveredRatio="0.47826086956521741"/>
</method>
<method name="get_PrintingHelper" type="System.Drawing.Graphics" token="6000323" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="get_AtomName" type="System.Drawing.SafeNativeMethods+Gdip" token="60006f2" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="4" coveredRatio="0.5"/>
</method>
<method name="get_GdiCharSet" type="System.Drawing.Font" token="6000664" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="get_GdiVerticalFont" type="System.Drawing.Font" token="6000665" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name=".ctor" type="System.Drawing.Font" token="6000651" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="3" total="3" coveredRatio="1"/>
</method>
<method name="Dispose" type="System.Drawing.Font" token="6000662" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="3" total="3" coveredRatio="1"/>
</method>
<method name="Dispose" type="System.Drawing.Font" token="6000682" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="6" total="10" coveredRatio="0.6"/>
</method>
<method name="SetSystemFontName" type="System.Drawing.Font" token="6000685" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="get_FontHeight" type="System.Windows.Forms.Control" token="60006cb" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="16" total="26" coveredRatio="0.61538461538461542"/>
</method>
<method name="GetHeight" type="System.Drawing.Font" token="6000672" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="8" total="8" coveredRatio="1"/>
</method>
<method name="SetInteger" type="System.Windows.Forms.PropertyStore" token="6003bff" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="7" total="16" coveredRatio="0.4375"/>
</method>
<method name="MeasureText" type="System.Windows.Forms.TextRenderer" token="6005524" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="8" total="9" coveredRatio="0.88888888888888884"/>
</method>
<method name="GetWindowsFont" type="System.Windows.Forms.Internal.WindowsGraphicsCacheManager" token="6005627" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name="GetWindowsFont" type="System.Windows.Forms.Internal.WindowsGraphicsCacheManager" token="6005628" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="26" total="51" coveredRatio="0.50980392156862742"/>
</method>
<method name="get_WindowsFontCache" type="System.Windows.Forms.Internal.WindowsGraphicsCacheManager" token="6005624" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="4" total="4" coveredRatio="1"/>
</method>
<method name="FromFont" type="System.Windows.Forms.Internal.WindowsFont" token="600560b" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="10" total="12" coveredRatio="0.83333333333333337"/>
</method>
<method name="get_Name" type="System.Drawing.FontFamily" token="6000693" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="3" total="3" coveredRatio="1"/>
</method>
<method name="get_CurrentLanguage" type="System.Drawing.FontFamily" token="60006a4" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="3" total="3" coveredRatio="1"/>
</method>
<method name="get_Size" type="System.Drawing.Font" token="6000675" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name=".ctor" type="System.Windows.Forms.Internal.WindowsFont" token="6005608" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="13" total="18" coveredRatio="0.72222222222222221"/>
</method>
<method name=".ctor" type="System.Windows.Forms.Internal.IntNativeMethods+LOGFONT" token="6005576" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name="get_MeasurementGraphics" type="System.Windows.Forms.Internal.WindowsGraphicsCacheManager" token="6005625" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="6" total="6" coveredRatio="1"/>
</method>
<method name="CreateMeasurementWindowsGraphics" type="System.Windows.Forms.Internal.WindowsGraphics" token="600562a" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="3" total="3" coveredRatio="1"/>
</method>
<method name="FromCompatibleDC" type="System.Windows.Forms.Internal.DeviceContext" token="6005535" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="4" total="4" coveredRatio="1"/>
</method>
<method name="Add" type="System.Internal.HandleCollector" token="6005676" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name="Add" type="System.Internal.HandleCollector+HandleType" token="600567e" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="12" total="18" coveredRatio="0.66666666666666663"/>
</method>
<method name="NeedCollection" type="System.Internal.HandleCollector+HandleType" token="6005680" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="4" total="8" coveredRatio="0.5"/>
</method>
<method name=".ctor" type="System.Windows.Forms.Internal.DeviceContext" token="6005532" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="6" total="9" coveredRatio="0.66666666666666663"/>
</method>
<method name="CacheInitialState" type="System.Windows.Forms.Internal.DeviceContext" token="600552f" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="9" total="9" coveredRatio="1"/>
</method>
<method name="AddDeviceContext" type="System.Windows.Forms.Internal.DeviceContexts" token="6005565" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="10" total="10" coveredRatio="1"/>
</method>
<method name=".ctor" type="System.Windows.Forms.ClientUtils+WeakRefCollection" token="600001e" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="3" total="3" coveredRatio="1"/>
</method>
<method name="set_RefCheckThreshold" type="System.Windows.Forms.ClientUtils+WeakRefCollection" token="6000009" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="Contains" type="System.Windows.Forms.ClientUtils+WeakRefCollection" token="6000012" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="4" total="4" coveredRatio="1"/>
</method>
<method name="get_InnerList" type="System.Windows.Forms.ClientUtils+WeakRefCollection" token="6000020" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="CreateWeakRefObject" type="System.Windows.Forms.ClientUtils+WeakRefCollection" token="6000021" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="3" total="4" coveredRatio="0.75"/>
</method>
<method name=".ctor" type="System.Windows.Forms.ClientUtils+WeakRefCollection+WeakRefObject" token="60056bb" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="4" total="4" coveredRatio="1"/>
</method>
<method name="GetHashCode" type="System.Windows.Forms.Internal.DeviceContext" token="6005545" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="3" total="3" coveredRatio="1"/>
</method>
<method name="get_Hdc" type="System.Windows.Forms.Internal.DeviceContext" token="600552e" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="3" total="6" coveredRatio="0.5"/>
</method>
<method name="add_Disposing" type="System.Windows.Forms.Internal.DeviceContext" token="600552b" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="4" total="4" coveredRatio="1"/>
</method>
<method name="Add" type="System.Windows.Forms.ClientUtils+WeakRefCollection" token="6000017" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="7" total="8" coveredRatio="0.875"/>
</method>
<method name="get_Count" type="System.Windows.Forms.ClientUtils+WeakRefCollection" token="6000018" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="3" total="3" coveredRatio="1"/>
</method>
<method name="get_RefCheckThreshold" type="System.Windows.Forms.ClientUtils+WeakRefCollection" token="6000008" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name=".ctor" type="System.Windows.Forms.Internal.WindowsGraphics" token="6005629" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="3" total="3" coveredRatio="1"/>
</method>
<method name="SaveHdc" type="System.Windows.Forms.Internal.DeviceContext" token="6005540" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="10" total="10" coveredRatio="1"/>
</method>
<method name=".ctor" type="System.Windows.Forms.Internal.DeviceContext+GraphicsState" token="6005564" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name="get_DeviceContext" type="System.Windows.Forms.Internal.WindowsGraphics" token="6005630" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="get_DpiY" type="System.Windows.Forms.Internal.DeviceContext" token="600554f" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name="CreateFont" type="System.Windows.Forms.Internal.WindowsFont" token="6005604" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="6" total="8" coveredRatio="0.75"/>
</method>
<method name="set_OwnedByCacheManager" type="System.Windows.Forms.Internal.WindowsFont" token="6005619" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="3" total="3" coveredRatio="1"/>
</method>
<method name="GetIntTextFormatFlags" type="System.Windows.Forms.TextRenderer" token="6005529" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="3" coveredRatio="0.66666666666666663"/>
</method>
<method name="MeasureText" type="System.Windows.Forms.Internal.WindowsGraphics" token="6005648" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="28" total="36" coveredRatio="0.77777777777777779"/>
</method>
<method name="IsMeasurementDC" type="System.Windows.Forms.Internal.MeasurementDCInfo" token="600557b" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="9" total="10" coveredRatio="0.9"/>
</method>
<method name="GetCurrentMeasurementGraphics" type="System.Windows.Forms.Internal.WindowsGraphicsCacheManager" token="6005626" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="GetTextMargins" type="System.Windows.Forms.Internal.MeasurementDCInfo" token="600557e" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="12" total="12" coveredRatio="1"/>
</method>
<method name=".ctor" type="System.Windows.Forms.Internal.MeasurementDCInfo+CachedInfo" token="6005582" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name="GetTextMargins" type="System.Windows.Forms.Internal.WindowsGraphics" token="6005644" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="8" total="13" coveredRatio="0.61538461538461542"/>
</method>
<method name="get_TextPadding" type="System.Windows.Forms.Internal.WindowsGraphics" token="6005635" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="GetOverhangPadding" type="System.Windows.Forms.Internal.WindowsGraphics" token="6005643" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="4" total="7" coveredRatio="0.5714285714285714"/>
</method>
<method name="get_Height" type="System.Windows.Forms.Internal.WindowsFont" token="600561c" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="7" total="7" coveredRatio="1"/>
</method>
<method name="SelectFont" type="System.Windows.Forms.Internal.DeviceContext" token="6005553" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="15" total="19" coveredRatio="0.78947368421052633"/>
</method>
<method name="get_Font" type="System.Windows.Forms.Internal.DeviceContext" token="6005550" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="11" total="11" coveredRatio="1"/>
</method>
<method name="get_LastUsedFont" type="System.Windows.Forms.Internal.MeasurementDCInfo" token="600557c" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="3" coveredRatio="0.66666666666666663"/>
</method>
<method name="FromHdc" type="System.Windows.Forms.Internal.WindowsFont" token="600560c" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="4" total="4" coveredRatio="1"/>
</method>
<method name="FromHfont" type="System.Windows.Forms.Internal.WindowsFont" token="600560d" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name="FromHfont" type="System.Windows.Forms.Internal.WindowsFont" token="600560e" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="5" total="5" coveredRatio="1"/>
</method>
<method name=".ctor" type="System.Windows.Forms.Internal.WindowsFont" token="6005609" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="9" total="14" coveredRatio="0.6428571428571429"/>
</method>
<method name="Equals" type="System.Windows.Forms.Internal.WindowsFont" token="6005612" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="8" total="21" coveredRatio="0.38095238095238093"/>
</method>
<method name="get_Name" type="System.Windows.Forms.Internal.WindowsFont" token="600561f" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="get_Hfont" type="System.Windows.Forms.Internal.WindowsFont" token="6005616" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="SelectObject" type="System.Windows.Forms.Internal.DeviceContext" token="6005559" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="7" total="10" coveredRatio="0.7"/>
</method>
<method name="set_LastUsedFont" type="System.Windows.Forms.Internal.MeasurementDCInfo" token="600557d" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="3" total="5" coveredRatio="0.6"/>
</method>
<method name="UpdateFont" type="System.Windows.Forms.Internal.MeasurementDCInfo+CachedInfo" token="6005581" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="3" total="3" coveredRatio="1"/>
</method>
<method name="GetTextMetrics" type="System.Windows.Forms.Internal.WindowsGraphics" token="6005650" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="8" total="13" coveredRatio="0.61538461538461542"/>
</method>
<method name="get_MapMode" type="System.Windows.Forms.Internal.DeviceContext" token="6005556" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="4" total="4" coveredRatio="1"/>
</method>
<method name=".ctor" type="System.Windows.Forms.Internal.IntNativeMethods+DRAWTEXTPARAMS" token="6005574" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="4" total="4" coveredRatio="1"/>
</method>
<method name="FromXYWH" type="System.Windows.Forms.Internal.IntNativeMethods+RECT" token="600556c" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name=".ctor" type="System.Windows.Forms.Internal.IntNativeMethods+RECT" token="600556a" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="get_Size" type="System.Windows.Forms.Internal.IntNativeMethods+RECT" token="600556d" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name="Dispose" type="System.Windows.Forms.Internal.WindowsFont" token="6005610" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name="Dispose" type="System.Windows.Forms.Internal.WindowsFont" token="6005611" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="7" total="15" coveredRatio="0.46666666666666667"/>
</method>
<method name="get_BorderSize" type="System.Windows.Forms.SystemInformation" token="6003fe1" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="4" total="4" coveredRatio="1"/>
</method>
<method name="get_Padding" type="System.Windows.Forms.ComboBox" token="60014e4" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name="get_Padding" type="System.Windows.Forms.Control" token="600074c" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="3" total="3" coveredRatio="1"/>
</method>
<method name="get_DefaultPadding" type="System.Windows.Forms.Control" token="60006b7" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="GetPadding" type="System.Windows.Forms.Layout.CommonProperties" token="6004e2e" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="4" total="5" coveredRatio="0.8"/>
</method>
<method name="GetPadding" type="System.Windows.Forms.PropertyStore" token="6003bf1" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="3" total="5" coveredRatio="0.6"/>
</method>
<method name="get_Size" type="System.Windows.Forms.Padding" token="600392d" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="4" total="4" coveredRatio="1"/>
</method>
<method name="get_Horizontal" type="System.Windows.Forms.Padding" token="600392b" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="3" total="3" coveredRatio="1"/>
</method>
<method name="get_Vertical" type="System.Windows.Forms.Padding" token="600392c" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="3" total="3" coveredRatio="1"/>
</method>
<method name="get_CreateParams" type="System.Windows.Forms.ComboBox" token="60014c6" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="18" total="33" coveredRatio="0.54545454545454541"/>
</method>
<method name="set_ClassName" type="System.Windows.Forms.CreateParams" token="60017b9" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="get_DropDownStyle" type="System.Windows.Forms.ComboBox" token="60014f5" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="4" total="5" coveredRatio="0.8"/>
</method>
<method name="Equals" type="System.Drawing.Font" token="600066b" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="20" total="24" coveredRatio="0.83333333333333337"/>
</method>
<method name="get_Quality" type="System.Windows.Forms.Internal.WindowsFont" token="600561a" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="get_DrawMode" type="System.Windows.Forms.ComboBox" token="60014ca" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="4" total="5" coveredRatio="0.8"/>
</method>
<method name=".ctor" type="System.Windows.Forms.HScrollBar" token="6002eec" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name=".ctor" type="System.Windows.Forms.ScrollBar" token="6002e98" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="10" total="10" coveredRatio="1"/>
</method>
<method name="get_DefaultMargin" type="System.Windows.Forms.ScrollBar" token="6002eab" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="set_Margin" type="System.Windows.Forms.Control" token="60006e7" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="7" total="7" coveredRatio="1"/>
</method>
<method name="ClampNegativePaddingToZero" type="System.Windows.Forms.Layout.LayoutUtils" token="6004e7a" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="15" total="15" coveredRatio="1"/>
</method>
<method name="get_All" type="System.Windows.Forms.Padding" token="6003921" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="3" total="3" coveredRatio="1"/>
</method>
<method name="get_Margin" type="System.Windows.Forms.Control" token="60006e6" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name="GetMargin" type="System.Windows.Forms.Layout.CommonProperties" token="6004e32" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="4" total="5" coveredRatio="0.8"/>
</method>
<method name="SetMargin" type="System.Windows.Forms.Layout.CommonProperties" token="6004e38" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="5" total="5" coveredRatio="1"/>
</method>
<method name="SetPadding" type="System.Windows.Forms.PropertyStore" token="6003bfc" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="5" total="10" coveredRatio="0.5"/>
</method>
<method name=".ctor" type="System.Windows.Forms.PropertyStore+PaddingWrapper" token="60067e7" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name="System.Windows.Forms.Layout.IArrangedElement.get_Container" type="System.Windows.Forms.Control" token="6000876" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name="DoLayout" type="System.Windows.Forms.Layout.LayoutTransaction" token="6006cb7" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="6" total="6" coveredRatio="1"/>
</method>
<method name="OnMarginChanged" type="System.Windows.Forms.Control" token="600080b" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="4" total="5" coveredRatio="0.8"/>
</method>
<method name="get_DefaultSize" type="System.Windows.Forms.HScrollBar" token="6002eeb" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="3" total="3" coveredRatio="1"/>
</method>
<method name="get_HorizontalScrollBarHeight" type="System.Windows.Forms.SystemInformation" token="6003fdf" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name="get_CreateParams" type="System.Windows.Forms.HScrollBar" token="6002eea" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="4" total="4" coveredRatio="1"/>
</method>
<method name="get_CreateParams" type="System.Windows.Forms.ScrollBar" token="6002ea9" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="5" total="5" coveredRatio="1"/>
</method>
<method name="set_TabStop" type="System.Windows.Forms.ScrollBar" token="6002ec1" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name=".ctor" type="System.Windows.Forms.PictureBox" token="600394d" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="9" total="9" coveredRatio="1"/>
</method>
<method name="get_DefaultSize" type="System.Windows.Forms.PictureBox" token="6003959" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name="get_CreateParams" type="System.Windows.Forms.PictureBox" token="6003957" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="4" total="9" coveredRatio="0.44444444444444442"/>
</method>
<method name="get_RightToLeft" type="System.Windows.Forms.PictureBox" token="6003977" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name="set_TabStop" type="System.Windows.Forms.PictureBox" token="6003980" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name="get_Size" type="System.Windows.Forms.Control" token="600070d" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name=".ctor" type="System.Windows.Forms.Button" token="600118d" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="4" total="4" coveredRatio="1"/>
</method>
<method name=".ctor" type="System.Windows.Forms.ButtonBase" token="6001129" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="9" total="9" coveredRatio="1"/>
</method>
<method name=".ctor" type="System.Windows.Forms.ImageList+Indexer" token="600146a" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name="get_DefaultSize" type="System.Windows.Forms.ButtonBase" token="6001132" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name="get_CreateParams" type="System.Windows.Forms.Button" token="6001194" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="8" total="14" coveredRatio="0.5714285714285714"/>
</method>
<method name="get_CreateParams" type="System.Windows.Forms.ButtonBase" token="6001133" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="4" total="34" coveredRatio="0.11764705882352941"/>
</method>
<method name="get_OwnerDraw" type="System.Windows.Forms.ButtonBase" token="6001172" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name="get_FlatStyle" type="System.Windows.Forms.ButtonBase" token="6001137" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="SetFlag" type="System.Windows.Forms.ButtonBase" token="6001181" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="6" total="8" coveredRatio="0.75"/>
</method>
<method name=".ctor" type="System.Windows.Forms.Label" token="6003106" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="14" total="14" coveredRatio="1"/>
</method>
<method name="get_DefaultMargin" type="System.Windows.Forms.Label" token="600311a" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name=".ctor" type="System.Windows.Forms.Padding" token="6003920" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="4" coveredRatio="0.5"/>
</method>
<method name="set_Left" type="System.Windows.Forms.Padding" token="6003926" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="3" total="4" coveredRatio="0.75"/>
</method>
<method name="set_Top" type="System.Windows.Forms.Padding" token="600392a" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="3" total="4" coveredRatio="0.75"/>
</method>
<method name="set_Right" type="System.Windows.Forms.Padding" token="6003928" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="3" total="4" coveredRatio="0.75"/>
</method>
<method name="set_Bottom" type="System.Windows.Forms.Padding" token="6003924" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="3" total="4" coveredRatio="0.75"/>
</method>
<method name="get_DefaultSize" type="System.Windows.Forms.Label" token="600311b" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="5" total="6" coveredRatio="0.83333333333333337"/>
</method>
<method name="get_AutoSize" type="System.Windows.Forms.Label" token="6003107" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name="get_AutoSize" type="System.Windows.Forms.Control" token="600066c" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name="GetAutoSize" type="System.Windows.Forms.Layout.CommonProperties" token="6004e31" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="3" total="3" coveredRatio="1"/>
</method>
<method name="GetLayoutState" type="System.Windows.Forms.Layout.CommonProperties" token="6004e54" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="4" total="4" coveredRatio="1"/>
</method>
<method name="GetInteger" type="System.Windows.Forms.PropertyStore" token="6003bf5" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name="get_CreateParams" type="System.Windows.Forms.Label" token="6003118" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="20" total="47" coveredRatio="0.425531914893617"/>
</method>
<method name="get_OwnerDraw" type="System.Windows.Forms.Label" token="6003132" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name="IsOwnerDraw" type="System.Windows.Forms.Label" token="6003150" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name="get_FlatStyle" type="System.Windows.Forms.Label" token="600311c" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name="get_BorderStyle" type="System.Windows.Forms.Label" token="6003115" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name="get_UseMnemonic" type="System.Windows.Forms.Label" token="6003144" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name="SetSelfAutoSizeInDefaultLayout" type="System.Windows.Forms.Layout.CommonProperties" token="6004e48" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="5" total="6" coveredRatio="0.83333333333333337"/>
</method>
<method name="SetLayoutState" type="System.Windows.Forms.Layout.CommonProperties" token="6004e55" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="4" total="4" coveredRatio="1"/>
</method>
<method name="set_TabStop" type="System.Windows.Forms.Label" token="6003138" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name="get_Height" type="System.Windows.Forms.Control" token="60006d6" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="get_Width" type="System.Windows.Forms.Control" token="600072d" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="System.ComponentModel.ISupportInitialize.BeginInit" type="System.Windows.Forms.PictureBox" token="60039a4" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name="SuspendLayout" type="System.Windows.Forms.Control" token="6000869" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="3" total="3" coveredRatio="1"/>
</method>
<method name="OnLayoutSuspended" type="System.Windows.Forms.Control" token="6000807" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="get_ControlDarkDark" type="System.Drawing.SystemColors" token="600052e" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name=".ctor" type="System.Drawing.Color" token="60001d3" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="set_BackColor" type="System.Windows.Forms.Control" token="6000676" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="14" total="22" coveredRatio="0.63636363636363635"/>
</method>
<method name="Equals" type="System.Drawing.Color" token="60001ed" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="8" total="13" coveredRatio="0.61538461538461542"/>
</method>
<method name="get_BackColor" type="System.Windows.Forms.Control" token="6000675" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="22" total="29" coveredRatio="0.75862068965517238"/>
</method>
<method name="get_RawBackColor" type="System.Windows.Forms.Control" token="60008fb" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="3" total="3" coveredRatio="1"/>
</method>
<method name="GetColor" type="System.Windows.Forms.PropertyStore" token="6003bee" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name="GetColor" type="System.Windows.Forms.PropertyStore" token="6003bef" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="5" total="5" coveredRatio="1"/>
</method>
<method name="get_IsEmpty" type="System.Drawing.Color" token="60001da" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="get_DefaultBackColor" type="System.Windows.Forms.Control" token="60006b0" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name="get_Control" type="System.Drawing.SystemColors" token="600052c" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name="SetColor" type="System.Windows.Forms.PropertyStore" token="6003bfb" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="5" total="10" coveredRatio="0.5"/>
</method>
<method name=".ctor" type="System.Windows.Forms.PropertyStore+ColorWrapper" token="60067e6" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name="OnBackColorChanged" type="System.Windows.Forms.Control" token="60007cb" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="13" total="29" coveredRatio="0.44827586206896552"/>
</method>
<method name="GetAnyDisposingInHierarchy" type="System.Windows.Forms.Control" token="6000927" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="5" total="6" coveredRatio="0.83333333333333337"/>
</method>
<method name="get_Disposing" type="System.Windows.Forms.Control" token="60006bb" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name="Invalidate" type="System.Windows.Forms.Control" token="60007bc" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name="Invalidate" type="System.Windows.Forms.Control" token="60007bd" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="3" total="16" coveredRatio="0.1875"/>
</method>
<method name=".ctor" type="System.Drawing.Point" token="6000447" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="set_Location" type="System.Windows.Forms.Control" token="60006e3" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="4" total="4" coveredRatio="1"/>
</method>
<method name="get_X" type="System.Drawing.Point" token="600044b" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="get_Y" type="System.Drawing.Point" token="600044d" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="SetBounds" type="System.Windows.Forms.Control" token="6000850" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="18" total="18" coveredRatio="1"/>
</method>
<method name="SetBoundsCore" type="System.Windows.Forms.Control" token="6000851" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="19" total="42" coveredRatio="0.45238095238095238"/>
</method>
<method name="UpdateSpecifiedBounds" type="System.Windows.Forms.Layout.CommonProperties" token="6004e3c" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="10" total="23" coveredRatio="0.43478260869565216"/>
</method>
<method name="GetSpecifiedBounds" type="System.Windows.Forms.Layout.CommonProperties" token="6004e35" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="5" total="8" coveredRatio="0.625"/>
</method>
<method name="GetRectangle" type="System.Windows.Forms.PropertyStore" token="6003bf4" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="3" total="5" coveredRatio="0.6"/>
</method>
<method name="get_Bounds" type="System.Windows.Forms.Control" token="6000689" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name=".ctor" type="System.Drawing.Rectangle" token="600046b" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="get_X" type="System.Drawing.Rectangle" token="6000472" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="get_Y" type="System.Drawing.Rectangle" token="6000474" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="get_Width" type="System.Drawing.Rectangle" token="6000476" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="get_Height" type="System.Drawing.Rectangle" token="6000478" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="ContainsObject" type="System.Windows.Forms.PropertyStore" token="6003bed" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name="ApplyBoundsConstraints" type="System.Windows.Forms.Control" token="60007ac" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="8" total="19" coveredRatio="0.42105263157894735"/>
</method>
<method name="get_MaximumSize" type="System.Windows.Forms.Control" token="60006ea" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="3" total="3" coveredRatio="1"/>
</method>
<method name="GetMaximumSize" type="System.Windows.Forms.Layout.CommonProperties" token="6004e33" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="4" total="5" coveredRatio="0.8"/>
</method>
<method name="GetSize" type="System.Windows.Forms.PropertyStore" token="6003bf2" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="3" total="5" coveredRatio="0.6"/>
</method>
<method name="get_MinimumSize" type="System.Windows.Forms.Control" token="60006ec" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="3" total="3" coveredRatio="1"/>
</method>
<method name="GetMinimumSize" type="System.Windows.Forms.Layout.CommonProperties" token="6004e34" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="4" total="5" coveredRatio="0.8"/>
</method>
<method name="UpdateBounds" type="System.Windows.Forms.Control" token="600086c" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="6" total="6" coveredRatio="1"/>
</method>
<method name="UpdateBounds" type="System.Windows.Forms.Control" token="600086d" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="17" total="17" coveredRatio="1"/>
</method>
<method name="OnLocationChanged" type="System.Windows.Forms.Control" token="60007f5" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="5" total="6" coveredRatio="0.83333333333333337"/>
</method>
<method name="OnMove" type="System.Windows.Forms.Control" token="6000816" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="7" total="8" coveredRatio="0.875"/>
</method>
<method name="get_RenderTransparent" type="System.Windows.Forms.Control" token="60008fe" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="6" total="6" coveredRatio="1"/>
</method>
<method name="get_A" type="System.Drawing.Color" token="60001d8" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name="get_Value" type="System.Drawing.Color" token="60001de" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="5" total="7" coveredRatio="0.7142857142857143"/>
</method>
<method name="get_IsKnownColor" type="System.Drawing.Color" token="60001d9" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="KnownColorToArgb" type="System.Drawing.KnownColorTable" token="6000ec8" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="3" total="4" coveredRatio="0.75"/>
</method>
<method name="EnsureColorTable" type="System.Drawing.KnownColorTable" token="6000ec4" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="3" total="3" coveredRatio="1"/>
</method>
<method name="InitColorTable" type="System.Drawing.KnownColorTable" token="6000ec5" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="4" total="4" coveredRatio="1"/>
</method>
<method name="UpdateSystemColors" type="System.Drawing.KnownColorTable" token="6000ece" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="34" total="34" coveredRatio="1"/>
</method>
<method name="FromWin32Value" type="System.Drawing.KnownColorTable" token="6000ecc" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name="Encode" type="System.Drawing.KnownColorTable" token="6000ecb" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="InitScaling" type="System.Windows.Forms.Control" token="6000930" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="set_Name" type="System.Windows.Forms.Control" token="60006f2" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="4" total="7" coveredRatio="0.5714285714285714"/>
</method>
<method name="set_Size" type="System.Windows.Forms.Control" token="600070e" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="4" total="4" coveredRatio="1"/>
</method>
<method name="OnSizeChanged" type="System.Windows.Forms.Control" token="600081e" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="5" total="6" coveredRatio="0.83333333333333337"/>
</method>
<method name="OnResize" type="System.Windows.Forms.Panel" token="6002c30" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="4" total="6" coveredRatio="0.66666666666666663"/>
</method>
<method name="OnResize" type="System.Windows.Forms.Control" token="600081c" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="9" total="10" coveredRatio="0.9"/>
</method>
<method name="System.Windows.Forms.Layout.IArrangedElement.PerformLayout" type="System.Windows.Forms.Control" token="6000878" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="3" total="3" coveredRatio="1"/>
</method>
<method name=".ctor" type="System.Windows.Forms.LayoutEventArgs" token="600317f" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name="PerformLayout" type="System.Windows.Forms.Control" token="600094a" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="21" total="27" coveredRatio="0.77777777777777779"/>
</method>
<method name="set_CacheTextInternal" type="System.Windows.Forms.Control" token="60008e7" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="5" total="22" coveredRatio="0.22727272727272727"/>
</method>
<method name="OnLayout" type="System.Windows.Forms.ScrollableControl" token="6000a66" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="8" total="9" coveredRatio="0.88888888888888884"/>
</method>
<method name="get_AffectedControl" type="System.Windows.Forms.LayoutEventArgs" token="6003182" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="get_AutoScroll" type="System.Windows.Forms.ScrollableControl" token="6000a52" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name="AdjustFormScrollbars" type="System.Windows.Forms.ScrollableControl" token="6000a64" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="14" total="19" coveredRatio="0.73684210526315785"/>
</method>
<method name="GetDisplayRectInternal" type="System.Windows.Forms.ScrollableControl" token="6000a78" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="13" total="27" coveredRatio="0.48148148148148145"/>
</method>
<method name="get_IsEmpty" type="System.Drawing.Rectangle" token="600047e" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="4" total="5" coveredRatio="0.8"/>
</method>
<method name="get_ClientRectangle" type="System.Windows.Forms.Control" token="6000698" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name="set_Width" type="System.Drawing.Rectangle" token="6000477" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="set_Height" type="System.Drawing.Rectangle" token="6000479" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="OnLayout" type="System.Windows.Forms.Control" token="6000805" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="9" total="15" coveredRatio="0.6"/>
</method>
<method name="get_LayoutEngine" type="System.Windows.Forms.Control" token="6000674" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="Layout" type="System.Windows.Forms.Layout.LayoutEngine" token="600170b" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="3" total="3" coveredRatio="1"/>
</method>
<method name="CastToArrangedElement" type="System.Windows.Forms.Layout.LayoutEngine" token="6001706" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="6" coveredRatio="0.33333333333333331"/>
</method>
<method name="LayoutCore" type="System.Windows.Forms.Layout.DefaultLayout" token="6004e58" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name="xLayout" type="System.Windows.Forms.Layout.DefaultLayout" token="6004e66" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="7" total="51" coveredRatio="0.13725490196078433"/>
</method>
<method name="System.Windows.Forms.Layout.IArrangedElement.get_Children" type="System.Windows.Forms.Control" token="6000875" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="4" total="5" coveredRatio="0.8"/>
</method>
<method name="get_Count" type="System.Windows.Forms.Layout.ArrangedElementCollection" token="6000a05" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="3" total="3" coveredRatio="1"/>
</method>
<method name="get_InnerList" type="System.Windows.Forms.Layout.ArrangedElementCollection" token="60009f6" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="OnClientSizeChanged" type="System.Windows.Forms.Control" token="60007ef" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="4" total="5" coveredRatio="0.8"/>
</method>
<method name="set_TabIndex" type="System.Windows.Forms.Control" token="6000712" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="4" total="11" coveredRatio="0.36363636363636365"/>
</method>
<method name="OnTabIndexChanged" type="System.Windows.Forms.Control" token="60007e8" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="4" total="5" coveredRatio="0.8"/>
</method>
<method name="add_MouseClick" type="System.Windows.Forms.Control" token="6000768" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="3" total="3" coveredRatio="1"/>
</method>
<method name="set_FormattingEnabled" type="System.Windows.Forms.ListControl" token="6001215" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="4" total="4" coveredRatio="1"/>
</method>
<method name="RefreshItems" type="System.Windows.Forms.ComboBox" token="600153a" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="13" total="32" coveredRatio="0.40625"/>
</method>
<method name="get_SelectedIndex" type="System.Windows.Forms.ComboBox" token="60014e9" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="3" total="6" coveredRatio="0.5"/>
</method>
<method name="get_DataManager" type="System.Windows.Forms.ListControl" token="6001205" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="BeginUpdate" type="System.Windows.Forms.ComboBox" token="600150e" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name="BeginUpdateInternal" type="System.Windows.Forms.Control" token="6000914" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="3" total="7" coveredRatio="0.42857142857142855"/>
</method>
<method name="set_SelectedIndex" type="System.Windows.Forms.ComboBox" token="60014ea" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="3" total="23" coveredRatio="0.13043478260869565"/>
</method>
<method name="EndUpdate" type="System.Windows.Forms.ComboBox" token="6001511" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="6" total="23" coveredRatio="0.2608695652173913"/>
</method>
<method name="get_AutoCompleteSource" type="System.Windows.Forms.ComboBox" token="60014b8" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="EndUpdateInternal" type="System.Windows.Forms.Control" token="6000919" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name="EndUpdateInternal" type="System.Windows.Forms.Control" token="600091a" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="7" coveredRatio="0.2857142857142857"/>
</method>
<method name="OnFormattingEnabledChanged" type="System.Windows.Forms.ListControl" token="600122d" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="4" total="5" coveredRatio="0.8"/>
</method>
<method name="SetBoundsCore" type="System.Windows.Forms.ComboBox" token="600153f" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="4" total="4" coveredRatio="1"/>
</method>
<method name="ApplyBoundsConstraints" type="System.Windows.Forms.ComboBox" token="6001517" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="6" total="8" coveredRatio="0.75"/>
</method>
<method name="get_MaximumSize" type="System.Windows.Forms.ComboBox" token="60014de" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name="get_MinimumSize" type="System.Windows.Forms.ComboBox" token="60014e0" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name="OnResize" type="System.Windows.Forms.ComboBox" token="6001534" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="4" total="5" coveredRatio="0.8"/>
</method>
<method name="set_Text" type="System.Windows.Forms.ComboBox" token="60014f8" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="12" total="25" coveredRatio="0.48"/>
</method>
<method name="set_Text" type="System.Windows.Forms.Control" token="600071d" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="18" total="22" coveredRatio="0.81818181818181823"/>
</method>
<method name="get_Text" type="System.Windows.Forms.ComboBox" token="60014f7" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="4" total="20" coveredRatio="0.2"/>
</method>
<method name="get_SelectedItem" type="System.Windows.Forms.ComboBox" token="60014eb" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="3" total="6" coveredRatio="0.5"/>
</method>
<method name="get_Text" type="System.Windows.Forms.Control" token="600071c" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="6" total="7" coveredRatio="0.8571428571428571"/>
</method>
<method name="get_CacheTextInternal" type="System.Windows.Forms.Control" token="60008e6" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="5" total="6" coveredRatio="0.83333333333333337"/>
</method>
<method name="get_WindowText" type="System.Windows.Forms.Control" token="6000731" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="5" total="21" coveredRatio="0.23809523809523808"/>
</method>
<method name="set_WindowText" type="System.Windows.Forms.Control" token="6000732" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="9" total="15" coveredRatio="0.6"/>
</method>
<method name="OnTextChanged" type="System.Windows.Forms.ComboBox" token="6001532" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="4" total="9" coveredRatio="0.44444444444444442"/>
</method>
<method name="get_SystemAutoCompleteEnabled" type="System.Windows.Forms.ComboBox" token="600154f" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="4" coveredRatio="0.5"/>
</method>
<method name="OnTextChanged" type="System.Windows.Forms.Control" token="60007ea" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="4" total="5" coveredRatio="0.8"/>
</method>
<method name="get_IsMnemonicsListenerAxSourced" type="System.Windows.Forms.Control" token="60006df" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="FindStringIgnoreCase" type="System.Windows.Forms.ComboBox" token="600154c" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="5" total="5" coveredRatio="1"/>
</method>
<method name="FindStringExact" type="System.Windows.Forms.ComboBox" token="6001516" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="3" total="14" coveredRatio="0.21428571428571427"/>
</method>
<method name="add_SelectedIndexChanged" type="System.Windows.Forms.ComboBox" token="6001501" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="3" total="3" coveredRatio="1"/>
</method>
<method name="set_LargeChange" type="System.Windows.Forms.ScrollBar" token="6002eb9" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="4" total="11" coveredRatio="0.36363636363636365"/>
</method>
<method name="UpdateScrollInfo" type="System.Windows.Forms.ScrollBar" token="6002ee4" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="3" total="17" coveredRatio="0.17647058823529413"/>
</method>
<method name="set_Value" type="System.Windows.Forms.ScrollBar" token="6002ec7" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="6" total="11" coveredRatio="0.54545454545454541"/>
</method>
<method name="OnValueChanged" type="System.Windows.Forms.ScrollBar" token="6002ee2" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="4" total="5" coveredRatio="0.8"/>
</method>
<method name="add_ValueChanged" type="System.Windows.Forms.ScrollBar" token="6002eda" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="3" total="3" coveredRatio="1"/>
</method>
<method name="get_Transparent" type="System.Drawing.Color" token="6000146" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name="OnResize" type="System.Windows.Forms.PictureBox" token="600399f" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="8" total="9" coveredRatio="0.88888888888888884"/>
</method>
<method name="get_BackgroundImage" type="System.Windows.Forms.Control" token="6000679" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="3" total="3" coveredRatio="1"/>
</method>
<method name="set_TabIndex" type="System.Windows.Forms.PictureBox" token="6003984" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name="add_Click" type="System.Windows.Forms.Control" token="6000733" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="3" total="3" coveredRatio="1"/>
</method>
<method name="get_BackColor" type="System.Windows.Forms.ButtonBase" token="6001130" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name="set_Text" type="System.Windows.Forms.ButtonBase" token="600114c" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name="get_Text" type="System.Windows.Forms.ButtonBase" token="600114b" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name="OnTextChanged" type="System.Windows.Forms.Button" token="60011a1" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="3" total="3" coveredRatio="1"/>
</method>
<method name="OnTextChanged" type="System.Windows.Forms.ButtonBase" token="6001166" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="8" total="8" coveredRatio="1"/>
</method>
<method name="get_AutoSize" type="System.Windows.Forms.ButtonBase" token="600112c" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name="CreateTransactionIf" type="System.Windows.Forms.Layout.LayoutTransaction" token="6006cb6" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="3" total="5" coveredRatio="0.6"/>
</method>
<method name="Dispose" type="System.Windows.Forms.Layout.NullLayoutTransaction" token="6006cb9" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="get_IsMnemonicsListenerAxSourced" type="System.Windows.Forms.ButtonBase" token="6001148" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="set_UseVisualStyleBackColor" type="System.Windows.Forms.ButtonBase" token="6001170" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name=".ctor" type="System.Drawing.Font" token="6000652" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="4" total="4" coveredRatio="1"/>
</method>
<method name="IsVerticalName" type="System.Drawing.Font" token="6000683" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="3" total="4" coveredRatio="0.75"/>
</method>
<method name="Initialize" type="System.Drawing.Font" token="600067e" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="5" total="5" coveredRatio="1"/>
</method>
<method name="StripVerticalName" type="System.Drawing.Font" token="6000684" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="4" total="6" coveredRatio="0.66666666666666663"/>
</method>
<method name=".ctor" type="System.Drawing.FontFamily" token="60006a1" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="3" total="3" coveredRatio="1"/>
</method>
<method name="set_Font" type="System.Windows.Forms.Control" token="60006c8" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="22" total="37" coveredRatio="0.59459459459459463"/>
</method>
<method name="Equals" type="System.Drawing.FontFamily" token="600068f" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="6" total="8" coveredRatio="0.75"/>
</method>
<method name="DisposeFontHandle" type="System.Windows.Forms.Control" token="60008f0" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="4" total="10" coveredRatio="0.4"/>
</method>
<method name="ContainsInteger" type="System.Windows.Forms.PropertyStore" token="6003bec" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name=".ctor" type="System.Windows.Forms.Layout.LayoutTransaction" token="6006cb3" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name=".ctor" type="System.Windows.Forms.Layout.LayoutTransaction" token="6006cb4" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="7" total="9" coveredRatio="0.77777777777777779"/>
</method>
<method name="OnFontChanged" type="System.Windows.Forms.Label" token="6003153" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="6" total="6" coveredRatio="1"/>
</method>
<method name="get_MeasureTextCache" type="System.Windows.Forms.Label" token="6003165" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="4" total="4" coveredRatio="1"/>
</method>
<method name=".ctor" type="System.Windows.Forms.Layout.LayoutUtils+MeasureTextCache" token="6004ea7" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name="InvalidateCache" type="System.Windows.Forms.Layout.LayoutUtils+MeasureTextCache" token="6004ea3" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="OnFontChanged" type="System.Windows.Forms.Control" token="60007d7" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="20" total="32" coveredRatio="0.625"/>
</method>
<method name="Dispose" type="System.Windows.Forms.Layout.LayoutTransaction" token="6006cb5" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="3" total="3" coveredRatio="1"/>
</method>
<method name="ResumeLayout" type="System.Windows.Forms.Control" token="6000844" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="24" total="26" coveredRatio="0.92307692307692313"/>
</method>
<method name="OnLayoutResuming" type="System.Windows.Forms.Control" token="6000806" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="3" total="5" coveredRatio="0.6"/>
</method>
<method name="AdjustSize" type="System.Windows.Forms.Label" token="6003167" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="14" total="17" coveredRatio="0.82352941176470584"/>
</method>
<method name="get_SelfSizing" type="System.Windows.Forms.Label" token="6003166" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name="ShouldSelfSize" type="System.Windows.Forms.Layout.CommonProperties" token="6004e47" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="3" total="11" coveredRatio="0.27272727272727271"/>
</method>
<method name="get_Anchor" type="System.Windows.Forms.Control" token="600066a" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name="GetAnchor" type="System.Windows.Forms.Layout.DefaultLayout" token="6004e67" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name="xGetAnchor" type="System.Windows.Forms.Layout.CommonProperties" token="6004e49" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="6" total="7" coveredRatio="0.8571428571428571"/>
</method>
<method name="xTranslateAnchorValue" type="System.Windows.Forms.Layout.CommonProperties" token="6004e4e" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="5" coveredRatio="0.4"/>
</method>
<method name="get_DeepSkyBlue" type="System.Drawing.Color" token="600016e" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name="set_ForeColor" type="System.Windows.Forms.Control" token="60006ce" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="10" total="13" coveredRatio="0.76923076923076927"/>
</method>
<method name="get_ForeColor" type="System.Windows.Forms.Control" token="60006cd" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="21" total="26" coveredRatio="0.80769230769230771"/>
</method>
<method name="get_DefaultForeColor" type="System.Windows.Forms.Control" token="60006b3" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name="get_ControlText" type="System.Drawing.SystemColors" token="6000531" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name="OnForeColorChanged" type="System.Windows.Forms.Control" token="60007d8" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="10" total="17" coveredRatio="0.58823529411764708"/>
</method>
<method name="SetBoundsCore" type="System.Windows.Forms.Label" token="6003160" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="8" total="14" coveredRatio="0.5714285714285714"/>
</method>
<method name="set_MainController" type="AutomaTones.Controller.MainController+MasterViewController" token="60001a3" module="AutomaTones.exe"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="get_VerticalScrollBarWidth" type="System.Windows.Forms.SystemInformation" token="6003fde" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name="get_CreateThreadId" type="System.Windows.Forms.Control" token="60008eb" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="4" total="8" coveredRatio="0.5"/>
</method>
<method name=".ctor" type="System.Drawing.Internal.GPStream" token="6000f3b" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="4" total="12" coveredRatio="0.33333333333333331"/>
</method>
<method name="Seek" type="System.Drawing.Internal.GPStream" token="6000f47" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="13" total="21" coveredRatio="0.61904761904761907"/>
</method>
<method name="Stat" type="System.Drawing.Internal.GPStream" token="6000f49" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="4" total="4" coveredRatio="1"/>
</method>
<method name="Read" type="System.Drawing.Internal.GPStream" token="6000f45" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="3" total="3" coveredRatio="1"/>
</method>
<method name="Create" type="AutomaTones.View.GUI_View.MainFactory" token="6000004" module="&lt;In Memory Module&gt;"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="13" coveredRatio="0.076923076923076927"/>
</method>
<method name=".ctor" type="System.Windows.Forms.VScrollBar" token="6004bd3" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name="get_DefaultSize" type="System.Windows.Forms.VScrollBar" token="6004bce" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="3" total="3" coveredRatio="1"/>
</method>
<method name="get_CreateParams" type="System.Windows.Forms.VScrollBar" token="6004bcd" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="4" total="4" coveredRatio="1"/>
</method>
<method name="get_RightToLeft" type="System.Windows.Forms.VScrollBar" token="6004bcf" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="set_AutoScaleMode" type="System.Windows.Forms.ContainerControl" token="6000aad" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="9" total="13" coveredRatio="0.69230769230769229"/>
</method>
<method name="IsEnumValid" type="System.Windows.Forms.ClientUtils" token="6000004" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="3" coveredRatio="0.66666666666666663"/>
</method>
<method name="OnAutoScaleModeChanged" type="System.Windows.Forms.ContainerControl" token="6000ac0" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="LayoutScalingNeeded" type="System.Windows.Forms.ContainerControl" token="6000ae4" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="5" total="6" coveredRatio="0.83333333333333337"/>
</method>
<method name="EnableRequiredScaling" type="System.Windows.Forms.ContainerControl" token="6000ae1" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="10" total="11" coveredRatio="0.90909090909090906"/>
</method>
<method name="get_Controls" type="System.Windows.Forms.Control" token="60006a7" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="7" total="7" coveredRatio="1"/>
</method>
<method name="CreateControlsInstance" type="System.Windows.Forms.Control" token="6000798" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name=".ctor" type="System.Windows.Forms.Control+ControlCollection" token="6000a0f" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name=".ctor" type="System.Windows.Forms.Layout.ArrangedElementCollection" token="60009f5" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="3" total="3" coveredRatio="1"/>
</method>
<method name="GetEnumerator" type="System.Windows.Forms.Control+ControlCollection" token="6000a17" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name=".ctor" type="System.Windows.Forms.Control+ControlCollection+ControlCollectionEnumerator" token="6000a28" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="3" total="3" coveredRatio="1"/>
</method>
<method name="MoveNext" type="System.Windows.Forms.Control+ControlCollection+ControlCollectionEnumerator" token="6000a29" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="5" total="5" coveredRatio="1"/>
</method>
<method name="get_IsLayoutSuspended" type="System.Windows.Forms.Control" token="60008f6" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="Add" type="System.Windows.Forms.Control+ControlCollection" token="6000a11" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="22" total="46" coveredRatio="0.47826086956521741"/>
</method>
<method name="GetTopLevel" type="System.Windows.Forms.Control" token="60007a5" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="CheckParentingCycle" type="System.Windows.Forms.Control" token="6000915" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="8" total="22" coveredRatio="0.36363636363636365"/>
</method>
<method name="AssignParent" type="System.Windows.Forms.Control" token="600078e" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="41" total="56" coveredRatio="0.7321428571428571"/>
</method>
<method name="get_RequiredScalingEnabled" type="System.Windows.Forms.Control" token="6000902" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="get_CanAccessProperties" type="System.Windows.Forms.Control" token="600068b" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="get_Font" type="System.Windows.Forms.ScrollBar" token="6002eb0" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name="get_ForeColor" type="System.Windows.Forms.ScrollBar" token="6002eac" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name="get_BackColor" type="System.Windows.Forms.ScrollBar" token="6002e9d" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name="get_Visible" type="System.Windows.Forms.Control" token="6000729" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name="GetVisibleCore" type="System.Windows.Forms.Control" token="60007b1" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="8" total="9" coveredRatio="0.88888888888888884"/>
</method>
<method name="OnParentChanged" type="System.Windows.Forms.Control" token="60007ed" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="7" total="9" coveredRatio="0.77777777777777779"/>
</method>
<method name="get_TopMostParent" type="System.Windows.Forms.Control" token="6000906" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="5" total="5" coveredRatio="1"/>
</method>
<method name="IsValidBackColor" type="System.Windows.Forms.Control" token="60008fa" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="7" total="8" coveredRatio="0.875"/>
</method>
<method name="get_Created" type="System.Windows.Forms.Control" token="60006a8" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="InitLayout" type="System.Windows.Forms.Layout.LayoutEngine" token="6001708" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="3" total="3" coveredRatio="1"/>
</method>
<method name="InitLayoutCore" type="System.Windows.Forms.Layout.DefaultLayout" token="6004e5a" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="4" total="5" coveredRatio="0.8"/>
</method>
<method name="GetNeedsAnchorLayout" type="System.Windows.Forms.Layout.CommonProperties" token="6004e2f" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="4" total="6" coveredRatio="0.66666666666666663"/>
</method>
<method name="InitLayout" type="System.Windows.Forms.Control" token="60007b8" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="3" total="3" coveredRatio="1"/>
</method>
<method name="get_Item" type="System.Windows.Forms.Control+ControlCollection" token="6000a1f" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="6" total="11" coveredRatio="0.54545454545454541"/>
</method>
<method name="ProcessSuspendedLayoutEventArgs" type="System.Windows.Forms.Layout.LayoutEngine" token="600170a" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name=".ctor" type="System.Windows.Forms.ControlEventArgs" token="600174d" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name="OnControlAdded" type="System.Windows.Forms.Control" token="60007f0" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="4" total="5" coveredRatio="0.8"/>
</method>
<method name="get_Font" type="System.Windows.Forms.PictureBox" token="6003960" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name="get_ForeColor" type="System.Windows.Forms.PictureBox" token="600395c" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name="OnParentChanged" type="System.Windows.Forms.PictureBox" token="600399e" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="3" total="3" coveredRatio="1"/>
</method>
<method name="Animate" type="System.Windows.Forms.PictureBox" token="60039b6" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="9" total="10" coveredRatio="0.9"/>
</method>
<method name="Animate" type="System.Windows.Forms.PictureBox" token="60039b8" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="4" total="11" coveredRatio="0.36363636363636365"/>
</method>
<method name="OnResize" type="System.Windows.Forms.UserControl" token="6004bc7" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="4" total="5" coveredRatio="0.8"/>
</method>
<method name="System.ComponentModel.ISupportInitialize.EndInit" type="System.Windows.Forms.PictureBox" token="60039a5" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="4" total="9" coveredRatio="0.44444444444444442"/>
</method>
<method name="get_ImageLocation" type="System.Windows.Forms.PictureBox" token="6003966" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="OnLayoutResuming" type="System.Windows.Forms.ContainerControl" token="6000ac7" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="3" total="3" coveredRatio="1"/>
</method>
<method name="PerformNeededAutoScaleOnLayout" type="System.Windows.Forms.ContainerControl" token="6000ae5" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="5" total="5" coveredRatio="1"/>
</method>
<method name="PerformAutoScale" type="System.Windows.Forms.ContainerControl" token="6000aca" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="8" total="21" coveredRatio="0.38095238095238093"/>
</method>
<method name="get_AutoScaleMode" type="System.Windows.Forms.ContainerControl" token="6000aac" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="get_Current" type="System.Windows.Forms.Control+ControlCollection+ControlCollectionEnumerator" token="6000a2b" module="System.Windows.Forms.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="3" total="4" coveredRatio="0.75"/>
</method>
<method name=".ctor" type="System.Drawing.Bitmap" token="600006f" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="4" total="20" coveredRatio="0.2"/>
</method>
<method name=".ctor" type="System.Drawing.Image" token="6000060" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name=".ctor" type="System.Drawing.Internal.GPStream+STATSTG" token="6000f4d" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="2" coveredRatio="1"/>
</method>
<method name="Read" type="System.Drawing.Internal.GPStream" token="6000f44" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="3" total="3" coveredRatio="1"/>
</method>
<method name="ActualizeVirtualPosition" type="System.Drawing.Internal.GPStream" token="6000f3c" module="System.Drawing.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="2" total="7" coveredRatio="0.2857142857142857"/>
</method>
<method name="get_InstalledDevices" type="Midi.InputDevice" token="60000de" module="Midi.dll"><hits/>
<coverage domain="userortestcode" unit="block" covered="0" total="0" coveredRatio="0"/>
</method>
<method name="Create" type="Midi.NoteOnMessageFactory" token="6000002" module="&lt;In Memory Module&gt;"><hits/>
<coverage domain="userortestcode" unit="block" covered="0" total="2" coveredRatio="0"/>
</method>
<method name="Create" type="Midi.ControlChangeMessageFactory" token="6000004" module="&lt;In Memory Module&gt;"><hits/>
<coverage domain="userortestcode" unit="block" covered="0" total="2" coveredRatio="0"/>
</method>
<method name="get_Dimensions" type="AutomaTones.Model.Automaton_Model.CellularAutomaton" token="6000132" module="AutomaTones.exe"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="Create" type="AutomaTones.Model.Automaton_Model.CellularAutomatonFactory" token="6000006" module="&lt;In Memory Module&gt;"><hits/>
<coverage domain="userortestcode" unit="block" covered="0" total="2" coveredRatio="0"/>
</method>
<method name="set_Generation" type="AutomaTones.Model.Automaton_Model.CellularAutomaton" token="6000137" module="AutomaTones.exe"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="set_Dimensions" type="AutomaTones.Model.Automaton_Model.CellularAutomaton" token="6000133" module="AutomaTones.exe"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="set_DimensionSize" type="AutomaTones.Model.Automaton_Model.CellularAutomaton" token="6000135" module="AutomaTones.exe"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="get_DimensionSize" type="AutomaTones.Model.Automaton_Model.CellularAutomaton" token="6000134" module="AutomaTones.exe"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="set_DefaultRule" type="AutomaTones.Model.Automaton_Model.CellularAutomaton" token="6000139" module="AutomaTones.exe"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="set_Rule" type="AutomaTones.Model.Automaton_Model.Cell" token="6000004" module="AutomaTones.exe"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="set_State" type="AutomaTones.Model.Automaton_Model.Cell" token="6000002" module="AutomaTones.exe"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="get_State" type="AutomaTones.Model.Automaton_Model.Cell" token="6000001" module="AutomaTones.exe"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="set_Dimensions" type="AutomaTones.Model.Automaton_Model.Rule" token="600009c" module="AutomaTones.exe"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="set_MyRuleDelegate" type="AutomaTones.Model.Automaton_Model.Rule" token="600009e" module="AutomaTones.exe"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="set_WolframCode" type="AutomaTones.Model.Automaton_Model.WolframRule" token="60000b9" module="AutomaTones.exe"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="set_ViewedSize" type="AutomaTones.Model.Automaton_Model.WolframAutomaton" token="600014e" module="AutomaTones.exe"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
<method name="get_ViewedSize" type="AutomaTones.Model.Automaton_Model.WolframAutomaton" token="600014d" module="AutomaTones.exe"><hits/>
<coverage domain="userortestcode" unit="block" covered="1" total="1" coveredRatio="1"/>
</method>
</document>
</documents>
